文章已更新,最新地址:http://www.fearlazy.com/index.php/post/114.html
在Qt中我们使用QPropertyAnimation就可以很轻松的实现动画效果,但是一个QPropertyAnimation只能绑定一个属性,也就是说只能用来展示某一个方面的动画效果。 然而在一些较为复杂的场景下单一个的动画效果就显得不够生动,这时候就需要多个QPropertyAnimation协同工作,毕竟现在处处都是讲究团队协作的,就连玩个游戏遇到一堆各干个的坑队友也是十分气人的。
那么多个QPropertyAnimation要怎么一起使用呢?比如说需要一个动画结束后接着另一个动画,我们可以通过连接第一个动画结束的槽函数,在槽函数中调用第二个动画的启动。如果需要两个动画同时运行又该怎么办呢?创建两个动画然后同时启动吗?事实上这样也是可行的就是太
麻烦了,如果要在两个动画之间停留一段时间还得加个定时器,逻辑就会变得非常的复杂了。
这时候就该让QAnimationGroup出场了,动画组顾名思义就是一组的动画,它有两个子类,一个是QParallelAnimationGroup并行动画组,该组里的动画同时运行,另一个是QSequentialAnimationGroup串行动画组,该组里的动画按照添加的顺序一个接一个执行。有了动画组的帮助
制作复杂的动画场景就简单多了。
并行动画举例:实现窗口逐渐清晰进入的效果,这里包含两个属性一个是窗口的透明度,另一个是窗口的位置。