简述

QParallelAnimationGroup类提供动画的并行组。

QParallelAnimationGroup - 一个动画容器,当它启动的时候它里面的所有动画也启动,即:并行运行所有动画,当持续时间最长的动画完成时动画组也随之完成。

详细描述

QParallelAnimationGroup可以被当做任何其它的QAbstractAnimation动画,例如:暂停、重置、添加到其它动画组中。

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

这个例子中,anim1、anim2是QPropertyAnimation。

示例

下面,我们通过QParallelAnimationGroup 来构建一个并行动画组,并添加属性动画QPropertyAnimation,这里也可以使用addAnimation()添加其它动画/动画组,就不予演示了。

效果

源码

  1. MainWindow::MainWindow(QWidget *parent)
  2. : CustomWindow(parent)
  3. {
  4. ...
  5. QPushButton *pStartButton = new QPushButton(this);
  6. pStartButton->setText(QString::fromLocal8Bit("开始动画"));
  7. QList<QLabel *> list;
  8. QStringList strList;
  9. strList << QString::fromLocal8Bit("一去丶二三里") << QString::fromLocal8Bit("青春不老,奋斗不止");
  10. for (int i = 0; i < strList.count(); ++i)
  11. {
  12. QLabel *pLabel = new QLabel(this);
  13. pLabel->setText(strList.at(i));
  14. pLabel->setAlignment(Qt::AlignCenter);
  15. pLabel->setStyleSheet("color: rgb(0, 160, 230);");
  16. list.append(pLabel);
  17. }
  18. // 动画一
  19. QPropertyAnimation *pAnimation1 = new QPropertyAnimation(list.at(0), "geometry");
  20. pAnimation1->setDuration(1000);
  21. pAnimation1->setStartValue(QRect(0, 0, 100, 30));
  22. pAnimation1->setEndValue(QRect(120, 130, 100, 30));
  23. pAnimation1->setEasingCurve(QEasingCurve::OutBounce);
  24. // 动画二
  25. QPropertyAnimation *pAnimation2 = new QPropertyAnimation(list.at(1), "geometry");
  26. pAnimation2->setDuration(1000);
  27. pAnimation2->setStartValue(QRect(120, 130, 120, 30));
  28. pAnimation2->setEndValue(QRect(170, 0, 120, 30));
  29. pAnimation2->setEasingCurve(QEasingCurve::OutInCirc);
  30. m_pGroup = new QParallelAnimationGroup(this);
  31. // 添加动画
  32. m_pGroup->addAnimation(pAnimation1);
  33. m_pGroup->addAnimation(pAnimation2);
  34. // 循环2次
  35. m_pGroup->setLoopCount(2);
  36. connect(pStartButton, SIGNAL(clicked(bool)), this, SLOT(startAnimation()));
  37. ...
  38. }
  39. // 开始动画
  40. void MainWindow::startAnimation()
  41. {
  42. m_pGroup->start();
  43. }

更多参考

Qt之QParallelAnimationGroup的更多相关文章

  1. Qt之窗口动画(下坠、抖动、透明度)

    简述 前面几节中我们介绍了关于动画的基本使用,有属性动画.串行动画组.并行动画组.这节我们来实现一些特效,让交互更顺畅. 简述 示例 效果 源码 更多参考 示例 下面,我们以geometry.pos. ...

  2. Qt之QPauseAnimation

    简述 QPauseAnimation类为QSequentialAnimationGroup提供了一个暂停. 如果你想为QSequentialAnimationGroup动画之间添加延迟,可以插入一个Q ...

  3. Qt之QSequentialAnimationGroup

    简述 QSequentialAnimationGroup类提供动画的串行组. QSequentialAnimationGroup是一个串行运行动画的QAnimationGroup,在另一个动画播放结束 ...

  4. Qt之QPropertyAnimation

    简述 QPropertyAnimation类定义了Qt的属性动画. QPropertyAnimation以Qt属性做差值,作为属性值存储在QVariants中,该类继承自QVariantAnimati ...

  5. Qt之动画框架

    简述 Qt动画框架旨在为创建动画和平滑的GUI提供了一种简单的方法.通过Qt动画属性,该框架为部件和其它QObject对象的动画操作提供了非常大的自由性,框架也可以被用于图形视图框架中,动画框架中许多 ...

  6. 《Qt 实战一二三》

    简介 "我们来自Qt分享&&交流,我们来自Qt Quick分享&&交流",不管你是笑了,还是笑了,反正我们是认真的.我们就是要找寻一种Hold不住的 ...

  7. Qt之窗口动画(下坠、抖动、透明度)(还有好多相关帖子)

    简述 前面几节中我们介绍了关于动画的基本使用,有属性动画.串行动画组.并行动画组.这节我们来实现一些特效,让交互更顺畅. 简述 示例 效果 源码 更多参考 示例 下面,我们以geometry.pos. ...

  8. qt 窗口动画

    窗口动画 编辑删除转载 2015-10-10 14:50:27 标签:qt渐变动画 一个应用程序通常包含多个动画,例如,你可能希望同时移动许多graphic items或者一个个按照串行的方式的移动他 ...

  9. Qt动画效果的实现,QPropertyAnimation

    Qt动画架构中的主要类如下图所示: 动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation和QAnimationGroup组成.QAbstractAnima ...

随机推荐

  1. System.MissingMethodException: 找不到方法:

    This is a problem which can occur when there is an old version of a DLL still lingering somewhere ar ...

  2. 读取视屏文件,保存帧图片为ppm文件

    ffmpeg跟sdl的学习过程:一.版本信息:ffmpeg-3.0.2.tar.bz2SDL2-2.0.4.tar.gz二.编译过程:1.ffmgeg的编译:./configure --enable- ...

  3. [SAP ABAP开发技术总结]SD销售订单定价过程

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. How to crack interviews ...

    Code practice: Leetcode: www.leetcode.com HackerRank: www.hackerrank.com Topcoder: https://www.topco ...

  5. JS学习笔记(五) HTML DOM

    参考资料: 1. http://www.w3school.com.cn/js/js_htmldom.asp 2. http://www.runoob.com/htmldom/htmldom-tutor ...

  6. 泛型IComparer<T>排序

    class Program { static void Main(string[] args) { GetListTest(); } private static void GetListTest() ...

  7. More Effective C++ (2)

    接下来的是more effective c++ 11至20条款: 11.禁止异常信息(exceptions)传递到析构函数外.析构函数的调用情况可能有两种:(1)对象正常销毁 (2)异常传播过程中的栈 ...

  8. Scrum Meeting---Eight(2015-11-3)

    今日已完成任务和明日要做的任务 姓名 今日已完成任务 今日时间 明日计划完成任务 估计用时 董元财 数据库与客户端通讯 5h 服务器与客户端通讯测试 4h 胡亚坤 好友添加 2h 好友添加 2h 刘猛 ...

  9. iOS - OC NSFileManager 文件管理

    前言 @interface NSFileManager : NSObject @interface NSFileHandle : NSObject <NSSecureCoding> NSF ...

  10. iOS - OC 与 Swift 互相操作

    前言 在 Swift 语言中,我们可以使用 Objective-C.C 语言编写代码,我们可以导入任意用 Objective-C 写的 Cocoa 平台框架.Objective-C 框架或 C 类库. ...