Qt | Qt 的动画框架和类
前言:
动画框架的父类是 QAbstractAnimation 类,QVariantAnimation 和 QAnimationGroup 类均继承自 QAbstractAnimation 类。QPropertyAnimation 类继承自 QVariantAnimation 类,因其将 QObject 的属性和 QPropertyAnimation 相连接,所以可以使用动画效果。
动画的类有哪些:
QAbstractAnimation:所有动画类的基类
这个类可以完美实现定时器(Timer)和时间事件(TimerEvent)的抽象化,提供记录当前时间、动画时长、动画效果重复循环次数、动画状态界面,并提供动画开始(start)、停止(stop)、重新开始(resume)和暂停(pause)功能。
QAnimationGroup:动画组的抽象基类
QAnimationGroup 是组合动画对象的抽象类。用组合动画对象的方法运行 QParallelAnimationGroup 类和 QSequentialAnimationGroup 类,这两个类均继承自 QAnimationGroup 类。
QEasingCurve:控制动画的 Easing 曲线
QEasingCurve 类控制动画的 easingCurve,主要用于提供 QVariantAnimation 类的属性,还可以插入动画对象的移动速度以编辑动作模式。
函数 valueForProgress()可在 0~1 中返回动作时长。如果第一个参数设为时间 t,则从函数 setDuration()指定的时长中返回和 t 对应的时长,以毫秒为单位。
QParallelAnimationGroup:并行处理多个动画组
QPauseAnimation:暂停 QSequentialAnimationGroup
QPropertyAnimation:向 QObject 对象添加动画功能
QPropertyAnimation 类使用 QObject 项目和类的构造函数指定目标和属性。函数 setDuration()指定动画对象从起始坐标移动到结束坐标的时长,以毫秒为单位。如果不使用函数 setDuration(),则默认设置为 250 毫秒。
函数 setStartValue()设置动画的起始坐标,函数 setEndValue()设置动画的结束坐标。start()可以在指定时间内启动自起始坐标到结束坐标之间的动画。
QSequentialAnimationGroup:串行动画(SequentialAnimation)组
QVariantAnimation:动画的抽象基类
QVariantAnimation 类是动画的抽象类,是动画对象和属性的基类,与指定为动画元素的 QObject 对象一样,通过函数 setStartValue() 和 setEndValue() 可以指定动画的开始位置和结束位置。坐标值改变时,会发生 valueChanged() 信号事件。
QTimeLine:控制动画的时间线
版权声明: 本文为 InfoQ 作者【YOLO.】的原创文章。
原文链接:【http://xie.infoq.cn/article/e33b96e34624a299e079347d2】。未经作者许可,禁止转载。
评论