写点什么

Qt | Qt 的动画框架和类

作者:YOLO.
  • 2022 年 10 月 11 日
    河北
  • 本文字数:873 字

    阅读完需:约 3 分钟

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:控制动画的时间线

发布于: 刚刚阅读数: 3
用户头像

YOLO.

关注

还未添加个人签名 2022.05.06 加入

还未添加个人简介

评论

发布
暂无评论
Qt | Qt的动画框架和类_qt_YOLO._InfoQ写作社区