QVariantAnimation Class Reference
[QtCore module]
该QVariantAnimation类提供了动画的抽象基类。More…
通过继承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个参数:起始值,结束值和目前的进展。
例如:
[QVariant]($docs-qvariant.html) myColorInterpolator(const [QColor](qcolor.html) &start, const [QColor](qcolor.html) &end, [qreal]($docs-index.htm#qreal-typedef) progress)
{
...
return [QColor](qcolor.html)(...);
}
...
qRegisterAnimationInterpolator<[QColor](qcolor.html)>(myColorInterpolator);
另一种选择是重新实现interpolated( ),它返回插补值进行插补值。
Method Documentation
QVariantAnimation.__init__ (self, QObject parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构建QVariantAnimation对象。parent被传递给QAbstractAnimation的构造。
QVariant QVariantAnimation.currentValue (self)
int QVariantAnimation.duration (self)
QEasingCurve QVariantAnimation.easingCurve (self)
[
QVariant QVariantAnimation.endValue (self)
bool QVariantAnimation.event (self, QEvent event)
]($docs-qeasingcurve.html)
从重新实现QObject.event( ) 。
QVariant QVariantAnimation.interpolated (self, QVariant from, QVariant to, float progress)
这个虚函数返回变体之间的线性插值from和to在progress, 0和1之间,通常的值。您可以在子类中重新实现这个功能QVariantAnimation提供自己的插值算法。
需要注意的是,为了使内插至一个工作QEasingCurve返回一个值大于0小于1 (如更小或更大QEasingCurve.InBack),你应该确保它能够推断。如果数据类型的语义不容许外推这个功能应该处理的优雅。
你应该调用QVariantAnimation如果你想让你的类来处理已经支持Qt的类型实现此功能(见类QVariantAnimation说明支持的类型的列表) 。
See also QEasingCurve。
QVariant QVariantAnimation.keyValueAt (self, float step)
返回关键帧值给定的step。给定step必须是范围为0到1。如果不存在KeyValue为step,它返回一个无效的QVariant。
See also keyValues()和setKeyValueAt( ) 。
list-of-tuple-of-float-QVariant QVariantAnimation.keyValues (self)
返回此动画的关键帧。
See also keyValueAt()和setKeyValues( ) 。
QVariantAnimation.setDuration (self, int msecs)
QVariantAnimation.setEasingCurve (self, QEasingCurve easing)
QVariantAnimation.setEndValue (self, QVariant value)
QVariantAnimation.setKeyValueAt (self, float step, QVariant value)
创建一个关键帧在给定的step用给定的value。给定step必须是范围为0到1。
See also setKeyValues()和keyValueAt( ) 。
QVariantAnimation.setKeyValues (self, list-of-tuple-of-float-QVariant values)
替换当前设置关键帧与给定keyValues。的关键帧的步骤必须在范围0到1。
See also keyValues()和keyValueAt( ) 。
QVariantAnimation.setStartValue (self, QVariant value)
QVariant QVariantAnimation.startValue (self)
QVariantAnimation.updateCurrentTime (self, int)
从重新实现QAbstractAnimation.updateCurrentTime( ) 。
QVariantAnimation.updateCurrentValue (self, QVariant value)
这种方法是抽象的,应在任何子类中重新实现。
这个纯虚函数被调用每次动画的当前值的变化。该value参数是新的当前值。
See also currentValue。
QVariantAnimation.updateState (self, QAbstractAnimation.State newState, QAbstractAnimation.State oldState)
从重新实现QAbstractAnimation.updateState( ) 。
Qt Signal Documentation
void valueChanged (const QVariant&)
这是该信号的默认超载。
QVariantAnimation发出这个信号时的当前value变化。
See also currentValue,startValue和endValue。