PySide6.QtCore.QAbstractAnimation¶
- class QAbstractAnimation¶
QAbstractAnimation
类是所有动画的基类。更多…继承自:
QVariantAnimation
,QPropertyAnimation
,QPauseAnimation
,QAnimationGroup
,QSequentialAnimationGroup
,QParallelAnimationGroup
在版本4.6中添加。
概要¶
属性¶
currentLoopᅟ
- 动画的当前循环currentTimeᅟ
- 动画的当前时间和进度directionᅟ
- 动画在运行状态时的方向durationᅟ
- 动画的持续时间loopCountᅟ
- 动画的循环次数stateᅟ
- 动画的状态
方法¶
def
__init__()
def
currentLoop()
def
currentTime()
def
direction()
def
group()
def
loopCount()
def
setDirection()
def
setLoopCount()
def
state()
def
totalDuration()
虚拟方法¶
def
duration()
def
updateState()
插槽¶
def
pause()
def
resume()
def
setCurrentTime()
def
setPaused()
def
start()
def
stop()
信号¶
def
finished()
def
stateChanged()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
该类定义了所有动画共享功能的功能。通过继承这个类,您可以创建自定义动画,这些动画可以插入到动画框架的其余部分中。
动画的进度由其当前时间(
currentLoopTime()
)给出,该时间从动画开始(0)到结束(duration()
)以毫秒为单位测量。该值在动画运行时自动更新。也可以通过setCurrentTime()
直接设置。在任何时候,动画都处于以下三种状态之一:
Running
、Stopped
或Paused
—— 这些状态由State
枚举定义。当前状态可以通过调用start()
、stop()
、pause()
或resume()
来改变。动画在启动时总是会重置其current time
。如果暂停,它将在恢复时继续使用相同的当前时间。当动画停止时,它无法恢复,但会保持其当前时间(直到再次启动)。QAbstractAnimation
会在其状态发生变化时发出stateChanged()
。通过设置
loopCount
属性,动画可以循环任意次数。当动画的当前时间达到其duration()
时,它将重置当前时间并继续运行。循环次数为1(默认值)意味着动画将运行一次。请注意,持续时间为-1意味着动画将一直运行直到停止;当前时间将无限增加。当当前时间等于duration()
并且动画处于其最后一次循环时,将进入Stopped
状态,并发出finished()
信号。QAbstractAnimation
提供了子类用于跟踪动画进度的纯虚函数:duration()
和updateCurrentTime()
。duration()
函数允许你报告动画的持续时间(如上所述)。当当前时间发生变化时,动画框架会调用updateCurrentTime()
。通过重新实现这个函数,你可以跟踪动画的进度。请注意,调用之间的间隔或调用此函数的次数都没有定义;不过,通常每秒会有60次更新。通过重新实现
updateState()
,您可以跟踪动画的状态变化,这对于不由时间驱动的动画特别有用。- class Direction¶
此枚举描述了动画在
Running
状态时的方向。常量
描述
QAbstractAnimation.Forward
动画的当前时间随时间增加(即从0开始向结束/持续时间移动)。
QAbstractAnimation.Backward
动画的当前时间随时间减少(即从结束/持续时间向0移动)。
另请参阅
- class State¶
此枚举描述了动画的状态。
常量
描述
QAbstractAnimation.Stopped
动画未运行。这是
QAbstractAnimation
的初始状态,也是QAbstractAnimation
在完成时重新进入的状态。当前时间保持不变,直到调用setCurrentTime()
,或者通过调用start()
启动动画。QAbstractAnimation.Paused
动画已暂停(即暂时挂起)。调用
resume()
将恢复动画活动。QAbstractAnimation.Running
动画正在运行。当控制在事件循环中时,
QAbstractAnimation
将定期更新其当前时间,并在适当的时候调用updateCurrentTime()
。另请参阅
- class DeletionPolicy¶
常量
描述
QAbstractAnimation.KeepWhenStopped
动画停止时不会被删除。
QAbstractAnimation.DeleteWhenStopped
动画停止时将自动删除。
注意
当使用
from __feature__ import true_property
时,属性可以直接使用,否则通过访问器函数使用。- property currentLoopᅟ: int¶
此属性保存动画的当前循环。
此属性描述了动画的当前循环。默认情况下,动画的循环次数为1,因此当前循环将始终为0。如果循环次数为2并且动画运行超过其持续时间,它将自动回退并在当前时间0和当前循环1处重新开始,依此类推。
当当前循环发生变化时,
QAbstractAnimation
会发出currentLoopChanged()
信号。- Access functions:
- property currentTimeᅟ: int¶
此属性保存动画的当前时间和进度。
此属性描述了动画的当前时间。您可以通过调用setCurrentTime来更改当前时间,或者您可以调用
start()
并让动画运行,随着动画的进行自动设置当前时间。动画的当前时间从0开始,到
totalDuration()
结束。注意
您可以将其他属性绑定到currentTime,但不建议对其进行绑定设置。随着动画的进行,currentTime会自动更新,这将取消其绑定。
- Access functions:
- property directionᅟ: QAbstractAnimation.Direction¶
此属性保存动画在
Running
状态时的方向。这个方向指示时间是从0向动画持续时间移动,还是在调用
start()
后从持续时间的值向0移动。默认情况下,此属性设置为
Forward
。- Access functions:
- property durationᅟ: int¶
此属性保存动画的持续时间。
如果持续时间为-1,则表示持续时间未定义。在这种情况下,
loopCount
将被忽略。- Access functions:
- property loopCountᅟ: int¶
此属性保存动画的循环次数。
此属性描述了动画的循环次数为一个整数。默认情况下,此值为1,表示动画应仅运行一次,然后停止。通过更改此值,您可以让动画循环多次。值为0时,动画将完全不运行,值为-1时,动画将无限循环,直到停止。对于持续时间未定义的动画,不支持循环。它只会运行一次。
- Access functions:
- property stateᅟ: QAbstractAnimation.State¶
此属性保存动画的状态。
此属性描述了动画的当前状态。当动画状态发生变化时,
QAbstractAnimation
会发出stateChanged()
信号。注意
状态更新可能会导致
currentTime
属性的更新,这反过来可能会取消其绑定。因此,在设置currentTime
属性的绑定时要小心,尤其是在你预期动画状态会发生变化时。- Access functions:
构建了
QAbstractAnimation
基类,并将parent
传递给QObject
的构造函数。- currentLoop()¶
- Return type:
整数
属性
currentLoopᅟ
的获取器。- currentLoopChanged(currentLoop)¶
- Parameters:
currentLoop – int
QAbstractAnimation
每当当前循环发生变化时发出此信号。currentLoop
是当前循环。另请参阅
属性
currentLoopᅟ
的通知信号。- currentLoopTime()¶
- Return type:
整数
返回当前循环内的当前时间。它可以从0到
duration()
。另请参阅
- currentTime()¶
- Return type:
整数
另请参阅
属性
currentTimeᅟ
的获取器。- direction()¶
- Return type:
另请参阅
属性
directionᅟ
的获取器。QAbstractAnimation
每当方向改变时都会发出此信号。newDirection
是新的方向。另请参阅
属性
directionᅟ
的通知信号。- abstract duration()¶
- Return type:
整数
这个纯虚函数返回动画的持续时间,并定义了
QAbstractAnimation
应该更新当前时间的时间长度。这个持续时间是局部的,不包括循环次数。返回值为-1表示动画没有定义持续时间;动画应该一直运行,直到被停止。这对于不是时间驱动的动画,或者你无法轻易预测其持续时间的情况非常有用(例如,游戏中的事件驱动音频播放)。
如果动画是一个并行的
QAnimationGroup
,持续时间将是其所有动画中最长的持续时间。如果动画是一个顺序的QAnimationGroup
,持续时间将是其所有动画持续时间的总和。另请参阅
属性
durationᅟ
的获取器。- finished()¶
QAbstractAnimation
在动画停止并到达结束时发出此信号。此信号在
stateChanged()
之后发出。另请参阅
- group()¶
- Return type:
如果这个动画是
QAnimationGroup
的一部分,这个函数返回指向该组的指针;否则,它返回None
。另请参阅
- loopCount()¶
- Return type:
整数
另请参阅
属性
loopCountᅟ
的获取器。- pause()¶
暂停动画。当动画暂停时,
state()
返回 Paused。currentTime
的值将保持不变,直到调用resume()
或start()
。如果你想从当前时间继续,调用resume()
。- resume()¶
在动画暂停后恢复播放。当动画恢复时,它会发出resumed()和
stateChanged()
信号。当前时间不会改变。- setCurrentTime(msecs)¶
- Parameters:
msecs – 整数
另请参阅
属性
currentTimeᅟ
的设置器。属性
directionᅟ
的设置器。- setLoopCount(loopCount)¶
- Parameters:
loopCount – int
另请参阅
属性
loopCountᅟ
的设置器。- setPaused(paused)¶
- Parameters:
暂停 – bool
如果
paused
为 true,动画将暂停。如果paused
为 false,动画将继续。- start([policy=QAbstractAnimation.DeletionPolicy.KeepWhenStopped])¶
- Parameters:
策略 –
DeletionPolicy
开始动画。
policy
参数表示动画完成后是否应删除。当动画开始时,会发出stateChanged()
信号,并且state()
返回Running。当控制到达事件循环时,动画将自行运行,随着动画的进行,定期调用updateCurrentTime()
。如果动画当前已停止或已经到达结尾,调用start()将倒回动画并从头开始。当动画到达结尾时,动画将停止,或者如果循环级别大于1,它将倒回并从开头继续。
如果动画已经在运行,此函数不执行任何操作。
属性
stateᅟ
的获取器。QAbstractAnimation
每当动画的状态从oldState
变为newState
时,都会发出此信号。此信号在调用虚拟函数updateState()
后发出。另请参阅
属性
stateᅟ
的通知信号。- stop()¶
停止动画。当动画停止时,它会发出
stateChanged()
信号,并且state()
返回 Stopped。当前时间不会改变。如果动画在到达结束时自行停止(即
currentLoopTime()
==duration()
且currentLoop()
>loopCount()
- 1),则会发出finished()
信号。- totalDuration()¶
- Return type:
整数
返回动画的总时长和有效时长,包括循环次数。
另请参阅
- abstract updateCurrentTime(currentTime)¶
- Parameters:
currentTime – int
每当动画的
currentTime
发生变化时,都会调用这个纯虚函数。另请参阅
当动画的方向改变时,
QAbstractAnimation
会调用此虚拟函数。direction
参数是新方向。当动画的状态从
oldState
变为newState
时,QAbstractAnimation
会调用此虚拟函数。