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ᅟ
的通知信号。