QT之QPropertyAnimation动画类的介绍

2023-10-05 23:04

本文主要是介绍QT之QPropertyAnimation动画类的介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 简介
    • 成员函数
    • 例程

简介

QPropertyAnimation是Qt框架中的一个类,它用于在给定时间间隔内对QObject的属性进行动画化的平滑过渡。可以使用QPropertyAnimation实现各种动画效果,如淡入淡出、位移、旋转等。

QPropertyAnimation的初始化需要三个参数:

QPropertyAnimation(QObjecttarget,constQByteArray&propertyName,QObjectparent=nullptr)。第一个参数是目标对象,它是要实施动画的对象。第二个参数是描述字符串常量,它定义了要动画化的属性名称。最后一个参数是可选的父对象。

成员函数

1)void setTargetObject(QObject *target)
设置目标对象。

2)QObject *targetObject() const
返回目标对象。

3)void setPropertyName(const QByteArray &propertyName)
设置属性名称。

4)QByteArray propertyName() const
返回属性名称。

5)void setValue(const QVariant &value)
设置属性的最终值。

6)QVariant value() const
返回属性的最终值。

7)void setFromValue(const QVariant &value)
设置属性的起始值。

8)QVariant fromValue() const
返回属性的起始值。

9)void setDuration(int duration)
设置动画的持续时间。

10)int duration() const
返回动画的持续时间。

11)void setEasingCurve(const QEasingCurve &easing)
设置动画的缓动曲线。

12)QEasingCurve easingCurve() const
返回动画的缓动曲线。

13)void setLoopCount(int count)
设置动画的循环次数。

14)int loopCount() const
返回动画的循环次数。

15)void setLooping(bool enable)
设置动画是否循环播放。

16)bool isLooping() const
返回动画是否循环播放。

17)void start()
启动动画。

18)void stop()
停止动画。

19)QState state() const
返回动画的状态。

20)void setState(QState state)
设置动画的状态。

21)bool isRunning() const
返回动画是否正在运行。

22)bool isPaused() const
返回动画是否已暂停。

23)bool isStopped() const
返回动画是否已停止。

24)void pause()
暂停动画。

25)void resume()
恢复动画的运行。

26)void reset()
重置动画到初始状态。

27)void seek(int ms)
将动画跳转到指定时间位置。

28)int currentTime() const
返回当前动画的时间位置。

29)int totalTime() const
返回动画的总时间长度。

30)void setDirection(QAbstractAnimation::Direction direction)
设置动画的方向(正向或反向)。

31)QAbstractAnimation::Direction direction() const
返回动画的方向。

32)void setReverseDirection(QAbstractAnimation::Direction direction)
设置反向播放时的动画方向。

33)QAbstractAnimation::Direction reverseDirection() const
返回反向播放时的动画方向。

34)void setInterpolationMode(QAbstractAnimation::InterpolationMode mode)
设置插值模式(线性或平滑)。

35)QAbstractAnimation::InterpolationMode interpolationMode() const
返回插值模式。

36)void setStartValue(const QVariant &value)
设置属性的起始值(与fromValue()相同)。

37)QVariant startValue() const
返回属性的起始值(与fromValue()相同)。

38)void setEndValue(const QVariant &value)
设置属性的最终值(与value()相同)。

39)QVariant endValue() const
返回属性的最终值(与value()相同)。

例程

#include <QApplication>  
#include <QGraphicsObject>  
#include <QPropertyAnimation>  class MyObject : public QGraphicsObject  
{  
public:  MyObject(QObject *parent = nullptr)  : QGraphicsObject(parent)  {  }  QRectF boundingRect() const override  {  return QRectF(0, 0, 50, 50);  }  void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override  {  Q_UNUSED(option);  Q_UNUSED(widget);  painter->drawRect(boundingRect());  }  
};  int main(int argc, char *argv[])  
{  QApplication a(argc, argv);  MyObject object;  QPropertyAnimation animation(&object, "pos");  animation.setStartValue(QPointF(0, 0));  animation.setEndValue(QPointF(100, 100));  animation.setDuration(1000);  animation.start();  return a.exec();  
}

在这个示例中,创建了一个MyObject类,它从QGraphicsObject继承而来。在主函数中,创建了MyObject对象和QPropertyAnimation对象。通过调用QPropertyAnimation的start()方法,启动了动画,使得object的位置属性在1秒内从(0,0)平滑过渡到(100,100)。

这篇关于QT之QPropertyAnimation动画类的介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/152235

相关文章

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

JSR-107缓存规范介绍

《JSR-107缓存规范介绍》JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,下面给大家介绍JSR-107缓存规范的相关知识,感兴趣的朋友一起看看吧... 目录1.什么是jsR-1072.应用调用缓存图示3.JSR-107规范使用4.Spring 缓存机制缓存是每一

Qt之QMessageBox的具体使用

《Qt之QMessageBox的具体使用》本文介绍Qt中QMessageBox类的使用,用于弹出提示、警告、错误等模态对话框,具有一定的参考价值,感兴趣的可以了解一下... 目录1.引言2.简单介绍3.常见函数4.按钮类型(QMessage::StandardButton)5.分步骤实现弹窗6.总结1.引言

Qt中Qfile类的使用

《Qt中Qfile类的使用》很多应用程序都具备操作文件的能力,包括对文件进行写入和读取,创建和删除文件,本文主要介绍了Qt中Qfile类的使用,具有一定的参考价值,感兴趣的可以了解一下... 目录1.引言2.QFile文件操作3.演示示例3.1实验一3.2实验二【演示 QFile 读写二进制文件的过程】4.

使用WPF实现窗口抖动动画效果

《使用WPF实现窗口抖动动画效果》在用户界面设计中,适当的动画反馈可以提升用户体验,尤其是在错误提示、操作失败等场景下,窗口抖动作为一种常见且直观的视觉反馈方式,常用于提醒用户注意当前状态,本文将详细... 目录前言实现思路概述核心代码实现1、 获取目标窗口2、初始化基础位置值3、创建抖动动画4、动画完成后