本页内容

QSequentialAnimationGroup Class

QSequentialAnimationGroup 类提供了一个序列化的动画组。更多内容...

头文件: #include <QSequentialAnimationGroup>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
继承自: QAnimationGroup

属性

公共函数

QSequentialAnimationGroup(QObject *parent = nullptr)
virtual ~QSequentialAnimationGroup()
QPauseAnimation *addPause(int msecs)
QBindable<QAbstractAnimation *> bindableCurrentAnimation() const
QAbstractAnimation *currentAnimation() const
QPauseAnimation *insertPause(int index, int msecs)

重新实现的公共函数

virtual int duration() const override

信号

void currentAnimationChanged(QAbstractAnimation *current)

重新实现的受保护函数

virtual bool event(QEvent *event) override
virtual void updateCurrentTime(int currentTime) override
virtual void updateDirection(QAbstractAnimation::Direction direction) override
virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) override

详细说明

QSequentialAnimationGroup 是一个QAnimationGroup ,它按顺序运行动画,即上一段动画播放完毕后才开始播放下一段。动画按照添加到组中的顺序(通过addAnimation() 或insertAnimation())进行播放。当最后一段动画播放完毕时,该动画组即结束。

在任何时刻,该动画组中至多只有一个动画处于活动状态;该动画由currentAnimation()方法返回。空动画组没有当前动画。

顺序动画组可被视为任何其他动画,即可以启动、停止,并添加到其他组中。您还可以调用addPause() 或insertPause() 向顺序动画组添加暂停效果。

    QSequentialAnimationGroup *group = new QSequentialAnimationGroup;

    group->addAnimation(anim1);
    group->addAnimation(anim2);

    group->start();

在此示例中,anim1 和anim2 是两个已配置好的QPropertyAnimation。

另请参阅 QAnimationGroup 、QAbstractAnimation 以及《动画框架》。

属性文档

[bindable read-only] currentAnimation : QAbstractAnimation*

注意:此 属性支持QProperty 绑定。

该属性保存动画在当前时间点上的状态。

访问函数:

QAbstractAnimation *currentAnimation() const

通知器信号:

void currentAnimationChanged(QAbstractAnimation *current)

成员函数文档

QSequentialAnimationGroup::QSequentialAnimationGroup(QObject *parent = nullptr)

创建一个 QSequentialAnimationGroup。将 `parent ` 传递给 `QObject` 的构造函数。

[virtual noexcept] QSequentialAnimationGroup::~QSequentialAnimationGroup()

删除该动画组。同时,它也会删除该动画组中的所有动画。

QPauseAnimation *QSequentialAnimationGroup::addPause(int msecs)

向该动画组添加msecs 的暂停效果。该暂停被视为一种特殊的动画类型,因此animationCount 将增加1。

另请参阅 insertPause() 和QAnimationGroup::addAnimation()。

[signal] void QSequentialAnimationGroup::currentAnimationChanged(QAbstractAnimation *current)

QSequentialAnimationGroup 当currentAnimation 发生变化时,会发出此信号。current 是当前的动画。

注意: 这是属性currentAnimation 的通知器 信号。

另请参阅 currentAnimation()。

[override virtual] int QSequentialAnimationGroup::duration() const

重新实现了:QAbstractAnimation::duration() const。

[override virtual protected] bool QSequentialAnimationGroup::event(QEvent *event)

重写了:QAnimationGroup::event(QEvent *event)。

QPauseAnimation *QSequentialAnimationGroup::insertPause(int index, int msecs)

在该动画组的index 处插入msecs 毫秒的暂停。

另请参阅 addPause() 和QAnimationGroup::insertAnimation()。

[override virtual protected] void QSequentialAnimationGroup::updateCurrentTime(int currentTime)

重写了:QAbstractAnimation::updateCurrentTime(int currentTime)。

[override virtual protected] void QSequentialAnimationGroup::updateDirection(QAbstractAnimation::Direction direction)

重写了:QAbstractAnimation::updateDirection (QAbstractAnimation::Direction direction)。

[override virtual protected] void QSequentialAnimationGroup::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)

重写了:QAbstractAnimation::updateState (QAbstractAnimation::State newState, QAbstractAnimation::State oldState)。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.