【Qt之动画】详解

概述

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

你可能感兴趣的:(Qt记录,qt,开发语言)