Qt | Qt的动画框架和类

179 阅读2分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

前言:

动画框架的父类是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:控制动画的时间线