Qt动画:出现&消失的物体

时间:2010-01-06 18:50:17

标签: user-interface qt animation qt4

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

1 个答案:

答案 0 :(得分:1)

您希望显示/隐藏QGraphicsItem对象的功能似乎超出了动画类执行的简单"tweening"的范围。它一次只能用于一个物体,并且你必须自己写出任何外观或消失。

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

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

请注意,Qt 4.6的一个标题功能是QtAnimation框架,它更复杂但也相当复杂。我还没有使用它,但looking over the examples似乎你可能能够“动画”可见性或不透明度属性。