QAnimationGroup 类

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

头文件 #include <QAnimationGroup>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core
继承自 QAbstractAnimation
被以下类继承

QParallelAnimationGroupQSequentialAnimationGroup

公共函数

QAnimationGroup(QObject *parent = nullptr)
虚拟~QAnimationGroup()
voidaddAnimation(QAbstractAnimation *animation)
QAbstractAnimation *animationAt(int index) const
intanimationCount() const
void清除()
intindexOfAnimation(QAbstractAnimation *animation) const
voidinsertAnimation(int index, QAbstractAnimation *animation)
voidremoveAnimation(QAbstractAnimation *animation)
QAbstractAnimation *takeAnimation(int index)

重写的保护函数

虚拟event(QEvent *event) override

详细描述

动画组是动画(QAbstractAnimation 的子类)的容器。一个组通常负责管理其动画的状态,即决定何时开始、停止、恢复和暂停它们。目前,Qt 提供了两种这样的组:QParallelAnimationGroupQSequentialAnimationGroup。查阅它们的类描述以获取详细信息。

由于 QAnimationGroup 继承自 QAbstractAnimation,您可以将组组合起来,并轻松构建复杂的动画图。您可以通过 QAbstractAnimation 中的 group() 函数查询它所属的组。

要启动顶级动画组,您只需使用 QAbstractAnimation 中的 start() 函数。我们所说的顶级动画组是指不存在于其他组中的组。直接启动子组是不受支持的,可能会导致意外的行为。

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

QAnimationGroup 管理动画时获取所有权,并确保在删除动画组时它们被删除。

另请参阅QAbstractAnimationQVariantAnimation动画框架

成员函数文档

QAnimationGroup::QAnimationGroup(QObject *parent = nullptr)

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

[虚拟 None-CPP-NOEXCEPT] QAnimationGroup::~QAnimationGroup()

销毁动画组。它还将销毁所有其动画。

void QAnimationGroup::addAnimation(QAbstractAnimation *animation)

animation 添加到此组。这将调用 insertAnimation 并将索引设置为 animationCount()。

注意:该组获取动画的所有权。

另请参阅removeAnimation

QAbstractAnimation *QAnimationGroup::animationAt(int index) const

返回此组中 index 位置的动画指针。当您需要访问特定动画时,该函数很有用。index 在 0 到 animationCount() - 1 之间。

另请参阅animationCount() 和 indexOfAnimation

int QAnimationGroup::animationCount() const

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

另请参阅indexOfAnimationaddAnimationanimationAt

void QAnimationGroup::clear()

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

另请参阅addAnimationremoveAnimation

[覆盖虚拟受保护] 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)

将动画 animation 插入到动画组中的 index 位置。如果 index 是 0,动画将被插入到开始位置。如果 indexanimationCount(),动画将被插入到末尾。

注意:该组获取动画的所有权。

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

void QAnimationGroup::removeAnimation(QAbstractAnimation *animation)

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

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

QAbstractAnimation *QAnimationGroup::takeAnimation(int index)

返回 index 位置的动画并将其从动画组中移除。

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

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

© 2024 The Qt Company Ltd。本文档中的文档贡献归其各自所有者所有。提供的文档受 GNU 自由文档许可协议版本 1.3 条款的约束,由自由软件基金会发布。Qt 及其标志是 The Qt Company Ltd. 在芬兰及其他国家和地区的商标。所有其他商标均为其各自所有者的财产。