• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Qt动画框架QAnimationGroup、QParallelAnimationGroup、QSequentialAnimationGroup、QPauseAnimation

武飞扬头像
友善啊,朋友
帮助1

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,例如,暂停、恢复或将其添加到其他动画组。

  1.  
    QParallelAnimationGroup *group = new QParallelAnimationGroup;
  2.  
    group->addAnimation(anim1);
  3.  
    group->addAnimation(anim2);
  4.  
     
  5.  
    group->start();

QSequentialAnimationGroup

一、描述

串行动画容器组。动画按照它们添加到组中的顺序播放。动画组在其最后一个动画完成时结束。

在每一时刻,组中最多有一个活动动画,它由 currentAnimation() 返回。

串行动画组可以被视为任何其他 QAbstractAnimation,即它可以开始、停止或添加到其他组。

  1.  
    QSequentialAnimationGroup *group = new QSequentialAnimationGroup;
  2.  
    group->addAnimation(anim1);
  3.  
    group->addAnimation(anim2);
  4.  
     
  5.  
    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
系列文章
更多 icon
同类精品
更多 icon
继续加载