Qt动画框架QAnimationGroup、QParallelAnimationGroup、QSequentialAnimationGroup、QPauseAnimation
QAnimationGroup
一、描述
动画组是动画的容器(QAbstractAnimation 的子类)。组通常负责管理组中动画的状态,即决定何时开始、停止、恢复和暂停它们。
QAnimationGroup 提供添加和检索动画的方法。除此之外,可以通过调用removeAnimation() 删除动画,并通过调用clear() 清除动画组。可以通过监听 QEvent::ChildAdded 和 QEvent::ChildRemoved 事件来跟踪组动画的变化。
QAnimationGroup 获得它管理的动画的所有权,并确保在删除动画组时删除它们。
二、成员函数
1、void addAnimation(QAbstractAnimation *animation)
向组添加动画。这将调用索引等于 animationCount() 的 insertAnimation()。
2、QAbstractAnimation * animationAt(int index)
返回指向该组中索引处的动画的指针。索引介于 0 和 animationCount() - 1 之间。
3、int animationCount()
返回此组管理的动画数量。
4、void clear()
移除和删除此动画组中的所有动画,并将当前时间重置为 0。
5、int indexOfAnimation(QAbstractAnimation *animation)
返回动画的索引。
6、void insertAnimation(int index, QAbstractAnimation *animation)
将动画插入此动画组的 index 索引处。如果索引为 0,则在开头插入动画。如果 index 是 animationCount(),则在最后插入动画。
7、void removeAnimation(QAbstractAnimation *animation)
从此组中删除动画。动画的所有权转移给调用者。
8、QAbstractAnimation * takeAnimation(int index)
返回索引处的动画并将其从动画组中删除。动画的所有权转移给调用者。
QParallelAnimationGroup
一、描述
并行动画容器组。在它启动时将启动组内所有动画,即并行运行所有动画。当持续时间最长的动画结束时,动画组结束。
可以将 QParallelAnimationGroup 视为任何其他 QAbstractAnimation,例如,暂停、恢复或将其添加到其他动画组。
-
QParallelAnimationGroup *group = new QParallelAnimationGroup;
-
group->addAnimation(anim1);
-
group->addAnimation(anim2);
-
-
group->start();
QSequentialAnimationGroup
一、描述
串行动画容器组。动画按照它们添加到组中的顺序播放。动画组在其最后一个动画完成时结束。
在每一时刻,组中最多有一个活动动画,它由 currentAnimation() 返回。
串行动画组可以被视为任何其他 QAbstractAnimation,即它可以开始、停止或添加到其他组。
-
QSequentialAnimationGroup *group = new QSequentialAnimationGroup;
-
group->addAnimation(anim1);
-
group->addAnimation(anim2);
-
-
group->start();
二、成员函数
1、【信号】void currentAnimationChanged(QAbstractAnimation *current)
在当前活动动画改变时发出这个信号。current 是当前动画。
2、QPauseAnimation * addPause(int msecs)
向此动画组添加 msecs 毫秒的暂停。暂停被视为一种特殊类型的动画,因此 animationCount() 将增加 1。
3、QPauseAnimation * insertPause(int index, int msecs)
在此动画组的索引处插入 msecs 毫秒的暂停。
QPauseAnimation
一、描述
如果希望在 QSequentialAnimationGroup 中的动画之间引入延迟,可以插入一个 QPauseAnimation。您可以在构造函数中指定暂停的持续时间。也可以直接用 setDuration() 设置。
没有必要自己构造 QPauseAnimation。 QSequentialAnimationGroup 提供了便利函数 addPause() 和 insertPause()。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgiebfh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13