QT的动画框架 概述

来源:互联网 发布:淘宝第三方平台有哪些 编辑:程序博客网 时间:2024/06/12 05:54

QT的动画框架也是引入至QT4.6,很有可能是配合图形系统框架为了下一代UI做的铺垫

类别

个人认为,狭义的来说,Animation Framework指的是以QAbstractAnimation为基类的几个相关的Animation类,主要用途是用于动画QWidget/QObject的属性(property)

 

稍微放宽一点来说,还包括QTimeLine,顾名思义,它并不直接绑定并修改某个对象属性,而是根据设定的时间轴,发送信号,用于绑定特定slot,执行相关操作,所以应该不止动画,也不限于属性,你可以用它来做任何你想做的和时间轴相关的事。

 

其次,还有专用于QGraphicsItem的QGraphicsItemAnimation类,它主要和QTimeLine配合,控制QGraphicsItem的坐标变换矩阵

再广义一点,QT状态机在状态转换时可以绑定设置控件属性,你也可以认为这是一种动画效果,当然,如果不和一个Animation类配合的话,属性值的改变是瞬间完成的,没有中间动画过程。

 

特性

动画曲线

标准的Animation类,通过设置关联属性的起始和结束值,使用线性插值计算中间过程的属性值。QTimeline类也可以设置中间任意点的参数值。这样的动画效果可能不一定是你所需要的:比如模拟一个球的落地弹跳过程。通过设置动画曲线(Easing Curve),你可以制定参数的变化过程符合特定的曲线规律。

关联动画

如果你需要同时动画一组对象,或者对同一对象,按顺序执行一组动画效果,QAnimationGroup及其子类提供了并行/串行执行动画效果的能力,通过叠加组合,你可以得到更复杂的动画执行序列。

 

状态机驱动

你也可以通过状态机(QState类)驱动动画。

0 0
原创粉丝点击