QVariantAnimation Class Reference

[QtCore module]

该QVariantAnimation类提供了动画的抽象基类。More…

继承QAbstractAnimation

通过继承QPropertyAnimation

Methods

  • __init__ (self, QObject parent = None)
  • QVariant currentValue (self)
  • int duration (self)
  • QEasingCurve easingCurve (self)
  • QVariant endValue (self)
  • bool event (self, QEvent event)
  • QVariant interpolated (self, QVariant from, QVariant to, float progress)
  • QVariant keyValueAt (self, float step)
  • list-of-tuple-of-float-QVariant keyValues (self)
  • setDuration (self, int msecs)
  • setEasingCurve (self, QEasingCurve easing)
  • setEndValue (self, QVariant value)
  • setKeyValueAt (self, float step, QVariant value)
  • setKeyValues (self, list-of-tuple-of-float-QVariant values)
  • setStartValue (self, QVariant value)
  • QVariant startValue (self)
  • updateCurrentTime (self, int)
  • updateCurrentValue (self, QVariant value)
  • updateState (self, QAbstractAnimation.State newState, QAbstractAnimation.State oldState)

Qt Signals

  • void valueChanged (const QVariant&)

Detailed Description

该QVariantAnimation类提供了动画的抽象基类。

这个类是一部分The Animation Framework。它可以作为财产和物品的动画一个基类,与共享的功能函数。

QVariantAnimation不能直接使用,因为它是一个抽象类,它有一个叫做纯虚方法updateCurrentValue( ) 。这个类在执行插值QVariant秒,但保留使用插值到其子类。目前, Qt提供QPropertyAnimation,这动画的Qtproperties。请参阅QPropertyAnimation类描述,如果您希望进行动画该等物业。

然后,您可以通过调用设置该属性开始和结束值setStartValue()和setEndValue( ) ,最后调用start()来启动动画。 QVariantAnimation将插在目标对象的属性,放出valueChanged( ) 。反应在电流值的变化,你必须重新实现updateCurrentValue( )虚函数。

另外,也可以在位于起始和结束值之间规定的步骤来设定值。那么插值会触及这些点在指定的步骤。注意,开始和结束的值在0.0和1.0中定义的键值。

有两种方式会影响QVariantAnimation如何插值的值。你可以通过调用设置缓动曲线setEasingCurve( ) ,并配置持续时间通过调用setDuration( ) 。您可以更改的QVariants通过创建QVariantAnimation的子类,并重新实现虚拟内插interpolated()函数。

子类QVariantAnimation可以是一个选择,如果你有QVariants表示你不希望声明为Qt的属性。但请注意,您在大多数情况下会有所改善您的声明QVariant作为一个属性。

不是所有的QVariant类型的支持。下面是当前支持的列表QVariant类型:

如果您需要进行插值其它不同的类型,包括自定义类型,你必须实现插值为这些自己。要做到这一点,你可以为一个给定类型注册一个插补功能。这个函数有3个参数:起始值,结束值和目前的进展。

例如:

  1. [QVariant]($docs-qvariant.html) myColorInterpolator(const [QColor](qcolor.html) &start, const [QColor](qcolor.html) &end, [qreal]($docs-index.htm#qreal-typedef) progress)
  2. {
  3. ...
  4. return [QColor](qcolor.html)(...);
  5. }
  6. ...
  7. qRegisterAnimationInterpolator<[QColor](qcolor.html)>(myColorInterpolator);

另一种选择是重新实现interpolated( ),它返回插补值进行插补值。


Method Documentation

  1. QVariantAnimation.__init__ (self, QObject parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构建QVariantAnimation对象。parent被传递给QAbstractAnimation的构造。

  1. QVariant QVariantAnimation.currentValue (self)
  1. int QVariantAnimation.duration (self)
  1. QEasingCurve QVariantAnimation.easingCurve (self)

[

  1. QVariant QVariantAnimation.endValue (self)
  1. bool QVariantAnimation.event (self, QEvent event)

]($docs-qeasingcurve.html)

从重新实现QObject.event( ) 。

  1. QVariant QVariantAnimation.interpolated (self, QVariant from, QVariant to, float progress)

这个虚函数返回变体之间的线性插值fromtoprogress, 0和1之间,通常的值。您可以在子类中重新实现这个功能QVariantAnimation提供自己的插值算法。

需要注意的是,为了使内插至一个工作QEasingCurve返回一个值大于0小于1 (如更小或更大QEasingCurve.InBack),你应该确保它能够推断。如果数据类型的语义不容许外推这个功能应该处理的优雅。

你应该调用QVariantAnimation如果你想让你的类来处理已经支持Qt的类型实现此功能(见类QVariantAnimation说明支持的类型的列表) 。

See also QEasingCurve

  1. QVariant QVariantAnimation.keyValueAt (self, float step)

返回关键帧值给定的step。给定step必须是范围为0到1。如果不存在KeyValuestep,它返回一个无效的QVariant

See also keyValues()和setKeyValueAt( ) 。

  1. list-of-tuple-of-float-QVariant QVariantAnimation.keyValues (self)

返回此动画的关键帧。

See also keyValueAt()和setKeyValues( ) 。

  1. QVariantAnimation.setDuration (self, int msecs)
  1. QVariantAnimation.setEasingCurve (self, QEasingCurve easing)
  1. QVariantAnimation.setEndValue (self, QVariant value)
  1. QVariantAnimation.setKeyValueAt (self, float step, QVariant value)

创建一个关键帧在给定的step用给定的value。给定step必须是范围为0到1。

See also setKeyValues()和keyValueAt( ) 。

  1. QVariantAnimation.setKeyValues (self, list-of-tuple-of-float-QVariant values)

替换当前设置关键帧与给定keyValues。的关键帧的步骤必须在范围0到1。

See also keyValues()和keyValueAt( ) 。

  1. QVariantAnimation.setStartValue (self, QVariant value)
  1. QVariant QVariantAnimation.startValue (self)
  1. QVariantAnimation.updateCurrentTime (self, int)

从重新实现QAbstractAnimation.updateCurrentTime( ) 。

  1. QVariantAnimation.updateCurrentValue (self, QVariant value)

这种方法是抽象的,应在任何子类中重新实现。

这个纯虚函数被调用每次动画的当前值的变化。该value参数是新的当前值。

See also currentValue

  1. QVariantAnimation.updateState (self, QAbstractAnimation.State newState, QAbstractAnimation.State oldState)

从重新实现QAbstractAnimation.updateState( ) 。


Qt Signal Documentation

  1. void valueChanged (const QVariant&)

这是该信号的默认超载。

QVariantAnimation发出这个信号时的当前value变化。

See also currentValuestartValueendValue