2010-01-06 63 views
2

我正在用Qt4编写一个视频注释应用程序,用户需要能够搜索视频中的各个点,将标记放在各种对象上,然后为这些标记设置关键点,以便当他们四处移动时,他们会停留在视频中的对象上。 QGraphicsItemAnimation似乎是开始这些标记的好地方,但是它们需要能够在特定的时间出现和消失,我无法弄清楚如何处理QGraphicsItemAnimation。我可以将刻度设置为0,以使对象消失,但这似乎是一个非常冒险的解决方案,我猜测绘制引擎仍然会浪费CPU周期来绘制这些不可见的对象。有没有人有比这更好的解决方案?我现在正在使用Qt 4.5.3,但如果它使事情变得更容易,我愿意升级到4.6。谢谢!!Qt动画:出现和消失的对象

回答

1

看起来您希望显示/隐藏对象的功能超出了动画类所执行的简单"tweening"的范围。它一次只适用于一个对象,任何出现或消失都必须自己写。

你仍然可能QGraphicsItemAnimation得到一些里程(虽然它使用自己的计时器,而不是被锁定到您的视频的帧时钟有点狡猾)。

忽略“寻找”片刻,有一个QTimeLine::finished()信号。如果让注释的活动动画时间线的末尾代表您希望它消失的点,则可以在该点触发QGraphicsItem::hide()。当需要重新打开时,您需要构建一个新的QGraphicsItemAnimation(基于该对象的下一轮关键帧数据)并致电QGraphicsItem::show()

请注意,Qt 4.6的头条新增功能之一是QtAnimation框架,它比较复杂,但也相当复杂。我还没有使用它,但looking over the examples它似乎可能能够“动画”的可见性或不透明属性。