QAnimationGroup Class

QAnimationGroup 类是动画组的抽象基类。更多

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

QParallelAnimationGroupQSequentialAnimationGroup

公共函数

QAnimationGroup(QObject *parent = nullptr)
virtual ~QAnimationGroup()
void addAnimation(QAbstractAnimation *animation)
QAbstractAnimation *animationAt(int index) const
int animationCount() const
void clear()
int indexOfAnimation(QAbstractAnimation *animation) const
void insertAnimation(int index, QAbstractAnimation *animation)
void removeAnimation(QAbstractAnimation *animation)
QAbstractAnimation *takeAnimation(int index)

重新实现的保护函数

virtual bool event(QEvent *event) override

详细说明

动画组是动画(QAbstractAnimation 的子类)的容器。组通常负责管理其动画的state ,即决定何时开始、停止、恢复和暂停动画。目前,Qt XML 提供了两个这样的组:QParallelAnimationGroupQSequentialAnimationGroup 。详情请查看它们的类说明。

由于 QAnimationGroup 继承自QAbstractAnimation ,因此您可以组合群组,轻松构建复杂的动画图形。您可以使用group() 函数查询QAbstractAnimation 所属于的组。

要启动顶级动画组,只需使用QAbstractAnimation 中的start() 函数即可。顶级动画组指的是本身不包含在其他组中的组。我们不支持直接启动子组,这可能会导致意想不到的行为。

QAnimationGroup 提供了添加和检索动画的方法。此外,您还可以通过调用removeAnimation() 删除动画,并通过调用clear() 清除动画组。您可以通过监听QEvent::ChildAddedQEvent::ChildRemoved 事件来跟踪组中动画的变化。

QAnimationGroup 拥有其管理的动画的所有权,并确保在删除动画组时删除这些动画。

另请参阅 QAbstractAnimation,QVariantAnimation动画框架

成员函数文档

QAnimationGroup::QAnimationGroup(QObject *parent = nullptr)

构造一个 QAnimationGroup。parent 传递给QObject 的构造函数。

[virtual noexcept] QAnimationGroup::~QAnimationGroup()

销毁动画组。同时也会销毁其所有动画。

void QAnimationGroup::addAnimation(QAbstractAnimation *animation)

animation 添加到该组。这将调用索引等于animationCount() 的insertAnimation

注: 该组拥有动画的所有权。

另请参阅 removeAnimation()。

QAbstractAnimation *QAnimationGroup::animationAt(int index) const

返回指向该组index 动画的指针。index 介于 0 和animationCount() - 1 之间。

另请参阅 animationCount() 和indexOfAnimation()。

int QAnimationGroup::animationCount() const

返回该组管理的动画数量。

另请参阅 indexOfAnimation()、addAnimation() 和animationAt()。

void QAnimationGroup::clear()

移除并删除此动画组中的所有动画,并将当前时间重置为 0。

另请参阅 addAnimation() 和removeAnimation()。

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

重实现:QAbstractAnimation::event(QEvent *event).

int QAnimationGroup::indexOfAnimation(QAbstractAnimation *animation) const

返回animation 的索引。返回的索引可以传递给将索引作为参数的其他函数。

另请参阅 insertAnimation()、animationAt() 和takeAnimation()。

void QAnimationGroup::insertAnimation(int index, QAbstractAnimation *animation)

index 处将animation 插入该动画组。如果index 为 0,动画会插入到开头。如果indexanimationCount() ,动画将插入到末尾。

注: 动画组拥有动画的所有权。

另请参阅 takeAnimation()、addAnimation()、indexOfAnimation() 和removeAnimation()。

void QAnimationGroup::removeAnimation(QAbstractAnimation *animation)

animation 从该组中删除。animation 的所有权将转移给调用者。

另请参阅 takeAnimation()、insertAnimation() 和addAnimation()。

QAbstractAnimation *QAnimationGroup::takeAnimation(int index)

index 返回动画,并将其从动画组中删除。

注: 动画的所有权将转移给调用者。

另请参阅 removeAnimation()、addAnimation()、insertAnimation() 和indexOfAnimation()。

© 2025 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.