QAnimationGroup 类
QAnimationGroup 类是一个动画组的抽象基类。更多...
头文件 | #include <QAnimationGroup> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
继承自 | QAbstractAnimation |
被以下类继承 |
- 所有成员函数列表,包括继承成员
- QAnimationGroup 是动画框架的一部分。动画框架.
公共函数
QAnimationGroup(QObject *parent = nullptr) | |
虚拟 | ~QAnimationGroup() |
void | addAnimation(QAbstractAnimation *animation) |
QAbstractAnimation * | animationAt(int index) const |
int | animationCount() const |
void | 清除() |
int | indexOfAnimation(QAbstractAnimation *animation) const |
void | insertAnimation(int index, QAbstractAnimation *animation) |
void | removeAnimation(QAbstractAnimation *animation) |
QAbstractAnimation * | takeAnimation(int index) |
重写的保护函数
虚拟 | event(QEvent *event) override |
详细描述
动画组是动画(QAbstractAnimation 的子类)的容器。一个组通常负责管理其动画的状态,即决定何时开始、停止、恢复和暂停它们。目前,Qt 提供了两种这样的组:QParallelAnimationGroup 和 QSequentialAnimationGroup。查阅它们的类描述以获取详细信息。
由于 QAnimationGroup 继承自 QAbstractAnimation,您可以将组组合起来,并轻松构建复杂的动画图。您可以通过 QAbstractAnimation 中的 group() 函数查询它所属的组。
要启动顶级动画组,您只需使用 QAbstractAnimation 中的 start() 函数。我们所说的顶级动画组是指不存在于其他组中的组。直接启动子组是不受支持的,可能会导致意外的行为。
QAnimationGroup 提供了添加和检索动画的方法。除此之外,您可以通过调用 removeAnimation() 来删除动画,并调用 clear() 来清空动画组。您可以通过监听 QEvent::ChildAdded 和 QEvent::ChildRemoved 事件来跟踪组动画的变化。
QAnimationGroup 管理动画时获取所有权,并确保在删除动画组时它们被删除。
另请参阅QAbstractAnimation,QVariantAnimation 和 动画框架。
成员函数文档
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
返回此组管理的动画数量。
另请参阅indexOfAnimation,addAnimation 和 animationAt。
void QAnimationGroup::clear()
删除并删除此动画组中的所有动画,并将当前时间重置为 0。
另请参阅addAnimation 和 removeAnimation。
[覆盖虚拟受保护]
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,动画将被插入到开始位置。如果 index 是 animationCount(),动画将被插入到末尾。
注意:该组获取动画的所有权。
另请参阅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. 在芬兰及其他国家和地区的商标。所有其他商标均为其各自所有者的财产。