概述
QPropertyAnimation
类用于动画化Qt属性。
QPropertyAnimation
类在Qt属性上进行插值。由于属性值存储在QVariants
中,所以该类继承自QVariantAnimation
,并支持与其父类相同的元类型的动画。
声明属性的类必须是QObject
。为了可以动画化一个属性,它必须提供一个setter
(以便QPropertyAnimation
可以设置属性的值)。请注意,这使得可以动画化许多Qt的部件。
下面是一个例子:
QPropertyAnimation *animation = new QPropertyAnimation(myWidget, "geometry");animation->setDuration(10000);animation->setStartValue(QRect(0, 0, 100, 30));animation->setEndValue(QRect(250, 250, 100, 30));animation->start();
属性名和应该动画化的QObject
实例被传递给构造函数。然后可以指定属性的起始值和结束值。对于自己实现的类中的属性,过程是一样的-只需使用QVariantAnimation
检查您的QVariant
类型是否受支持。
QVariantAnimation
类的说明详细解释了如何设置动画。但是请注意,如果没有设置起始值,该属性将以在创建QPropertyAnimation
实例时的值作为起始值。
QPropertyAnimation
单独运行得很好。对于复杂的动画,例如包含多个对象的动画,可以使用QAnimationGroup
。动画组是一个包含其他动画的动画,可以管理其动画的播放时间。请参考QParallelAnimationGroup
获取示例。
另请可以参考 QVariantAnimation
, QAnimationGroup
, 和The Animation Framework
。