PySide6.QtCore.QVariantAnimation¶
- class QVariantAnimation¶
QVariantAnimation类为动画提供了一个基类。更多…继承者:
QPropertyAnimation在版本4.6中添加。
概要¶
属性¶
currentValueᅟ- 动画的当前值durationᅟ- 动画的持续时间easingCurveᅟ- 动画的缓动曲线endValueᅟ- 动画的结束值startValueᅟ- 动画的可选起始值
方法¶
def
__init__()def
currentValue()def
easingCurve()def
endValue()def
keyValueAt()def
keyValues()def
setDuration()def
setEasingCurve()def
setEndValue()def
setKeyValueAt()def
setKeyValues()def
setStartValue()def
startValue()
虚拟方法¶
def
interpolated()
信号¶
def
valueChanged()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
此类是动画框架的一部分。它作为属性和项目动画的基类,具有共享功能的功能。
该类对
QVariant进行插值,但将使用插值值的工作留给其子类。目前,Qt提供了QPropertyAnimation,它可以动画化Qt的属性。如果你想动画化这些属性,请参阅QPropertyAnimation类的描述。然后,您可以通过调用
setStartValue()和setEndValue()来设置属性的起始值和结束值,最后调用start()来启动动画。QVariantAnimation将插值目标对象的属性并发出valueChanged()。要响应当前值的变化,您必须重新实现updateCurrentValue()虚函数或连接到所述信号。也可以在开始值和结束值之间的指定步骤中设置值。插值将在指定的步骤中触及这些点。请注意,开始值和结束值被定义为0.0和1.0处的关键值。
有两种方法可以影响
QVariantAnimation如何插值。你可以通过调用setEasingCurve()来设置缓动曲线,并通过调用setDuration()来配置持续时间。你可以通过创建QVariantAnimation的子类并重新实现虚拟interpolated()函数来改变QVariant的插值方式。如果你有不想声明为Qt属性的
QVariant,子类化QVariantAnimation可能是一个替代方案。但请注意,在大多数情况下,将你的QVariant声明为属性会更好。并非所有
QVariant类型都受支持。以下是当前支持的QVariant类型列表:如果你需要插值其他变体类型,包括自定义类型,你必须自己实现这些类型的插值。为此,你可以为给定类型注册一个插值函数。这个函数接受3个参数:起始值、结束值和当前进度。
示例:
def myColorInterpolator(start,end,progress): ... return QColor(...) ... qRegisterAnimationInterpolator<QColor>(myColorInterpolator)
另一个选择是重新实现
interpolated(),它返回被插值的值的插值。注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property currentValueᅟ: object¶
此属性保存动画的当前值。
此属性描述了当前值;它是介于
起始值和结束值之间的插值,使用当前时间来表示进度。该值本身是从interpolated()中获取的,该函数在动画运行时被重复调用。QVariantAnimation在当前值发生变化时调用虚拟函数updateCurrentValue()。这对于需要跟踪更新的子类特别有用。例如,QPropertyAnimation使用此函数来动画化 Qt properties。另请参阅
- Access functions:
- property durationᅟ: int¶
此属性保存动画的持续时间。
此属性描述了动画的持续时间,单位为毫秒。默认持续时间为250毫秒。
另请参阅
- Access functions:
- property easingCurveᅟ: QEasingCurve¶
此属性保存动画的缓动曲线。
此属性定义了动画的缓动曲线。默认情况下,使用线性缓动曲线,导致线性插值。提供了其他曲线,例如,
InCirc,它提供了一个圆形进入曲线。另一个例子是InOutElastic,它在插值变体的值上提供了弹性效果。QVariantAnimation将使用valueForProgress()将动画的“标准化进度”(currentTime / totalDuration)转换为动画实际使用的有效进度。当调用interpolated()时,这个有效进度将成为进度。此外,keyValues中的步骤也是指这个有效进度。缓动曲线与插值器、
interpolated()虚函数以及动画的持续时间一起使用,以控制当前值在动画进行过程中如何变化。- Access functions:
- property endValueᅟ: object¶
此属性保存动画的结束值。
此属性描述了动画的结束值。
另请参阅
- Access functions:
- property startValueᅟ: object¶
此属性保存动画的可选起始值。
此属性描述了动画的可选起始值。如果省略,或者如果分配了一个空的
QVariant作为起始值,动画将在开始时使用结束时的当前位置。另请参阅
- Access functions:
构造一个
QVariantAnimation对象。parent被传递给QAbstractAnimation的构造函数。- currentValue()¶
- Return type:
对象
属性
currentValueᅟ的获取器。- easingCurve()¶
- Return type:
另请参阅
属性
easingCurveᅟ的获取器。- endValue()¶
- Return type:
对象
另请参阅
属性
endValueᅟ的获取器。- interpolated(from, to, progress)¶
- Parameters:
from – 对象
to – 对象
progress – 浮点数
- Return type:
对象
此虚函数返回在
from和to之间的线性插值,在progress处,通常是一个介于0和1之间的值。您可以在QVariantAnimation的子类中重新实现此函数,以提供您自己的插值算法。请注意,为了使插值能够与返回小于0或大于1的值的
QEasingCurve(例如InBack)一起工作,您应确保它能够进行外推。如果数据类型的语义不允许外推,此函数应优雅地处理这种情况。如果您希望您的类处理Qt已经支持的类型(有关支持类型的列表,请参见类
QVariantAnimation的描述),您应该调用此函数的QVariantAnimation实现。另请参阅
- keyValueAt(step)¶
- Parameters:
步长 – 浮点数
- Return type:
对象
返回给定
step的关键帧值。给定的step必须在0到1的范围内。如果没有KeyValue对应step,则返回一个无效的QVariant。- keyValues()¶
- Return type:
.std.pairdouble, QVariant 的列表
返回此动画的关键帧。
- setDuration(msecs)¶
- Parameters:
msecs – 整数
另请参阅
duration()
属性
durationᅟ的设置器。- setEasingCurve(easing)¶
- Parameters:
easing –
QEasingCurve
另请参阅
属性
easingCurveᅟ的设置器。- setEndValue(value)¶
- Parameters:
值 – 对象
另请参阅
属性
endValueᅟ的设置器。- setKeyValueAt(step, value)¶
- Parameters:
step – 浮点数
value – 对象
在给定的
step处创建一个关键帧,并赋予给定的value。给定的step必须在0到1的范围内。- setKeyValues(values)¶
- Parameters:
values – .std.pairdouble,QVariant 的列表
用给定的
keyValues替换当前的键帧集。键帧的步长必须在0到1的范围内。另请参阅
- setStartValue(value)¶
- Parameters:
值 – 对象
另请参阅
属性
startValueᅟ的设置器。- startValue()¶
- Return type:
对象
另请参阅
属性
startValueᅟ的获取器。- updateCurrentValue(value)¶
- Parameters:
值 – 对象
每次动画的当前值发生变化时,都会调用此虚拟函数。
value参数是新的当前值。基类实现不执行任何操作。
另请参阅
- valueChanged(value)¶
- Parameters:
值 – 对象
QVariantAnimation每当当前的value发生变化时,都会发出此信号。属性
currentValueᅟ的通知信号。