目录

官方解析

博主例子


官方解析

QPropertyAnimation

QPropertyAnimation类为Qt属性提供动画。
QPropertyAnimation类可以修改Qt属性,从而达到动画的效果。这些属性的值存储在QVariants中,所以QPropertyAnimation继承了QvariantAnimation,并且支持他相同元类型的动画,比如他的超类。
这个类必须是QObject的派生类。他必须经过一个设置才能使动画效果成为可能(这样的化QPropertyAnimation能够设置属性的值)。注意到这使得Qt小部件(窗口)都能做出动画的形式。举个例子:

  QPropertyAnimation *animation = new QPropertyAnimation(myWidget, "geometry");animation->setDuration(10000);animation->setStartValue(QRect(0, 0, 100, 30));animation->setEndValue(QRect(250, 250, 100, 30));animation->start();

属性名和QObject的实例这属性应该被传递给动画的构造函数。然后你能指定这个属性的开始和结束的指。当你自定义属性的时候实现的效果也是一样的,只要QVariant能支持,QVariantAnimation就能用。
QVariantAnimation类描述了如何去做一个动画的细节。注意,如果start value没有被设置,这个属性会设置一个值,这个值是QPropertyAnimation实例化的时候创建的。
QpropertyAnimation工作的时候是充满魅力的,要想完成一个复杂的动画,要包含几个对象实例,这里把他们放到QAnimationGroup中。一个动画组也是一个动画,这个动画包含了许许多多的动画。当组内的动画运行时他能够管理内部的小动画,查看QParallelAnimationGroup这个例子可以看他如何使用以及管理。

博主例子

我们把官方实例完整的实现出来。可以发现QpropertyAnimation和QTimeLine效果有点像,不过还是有区别的,关于QTimeLine可以看本人的这篇博文:https://mp.csdn.net/postedit/81530848

运行截图如下:

源码如下:

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private:Ui::Widget *ui;
};#endif // WIDGET_H

main.cpp

#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"#include <QPropertyAnimation>
#include <QMetaProperty>
#include <QDebug>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);QPropertyAnimation *animation=new QPropertyAnimation(ui->pushButton,"minimumSize");animation->setDuration(10000);animation->setStartValue(QSize(0,0));animation->setEndValue(QSize(300,300));animation->start();
}Widget::~Widget()
{delete ui;
}

关于QPushButton的属性可以用下面这种方式获得:

伪代码如下:

    for(int i=0;i<ui->pushButton->metaObject()->propertyCount();i++)qDebug()<<ui->pushButton->metaObject()->property(i).name();

运行截图如下:

后面还有很多,再次不再截图

Qt文档阅读笔记-QPropertyAnimation官方解析及实例相关推荐

  1. Qt文档阅读笔记-QSet官方解析及实例

    目录 官方解析 博主栗子 官方解析 QSet类是一个模板类,他是一个哈希表集合. QSet<T>是Qt的一个普通容器类.QSet存储的值是不指明顺序的,QSet对这些值提供了快速检索的功能 ...

  2. Qt文档阅读笔记-QtWebApp官方解析与实例(使用QtWebApp搭建HTTP服务器)

    目录 官方解析 博主例子 官方解析 QtWepApp是一个C++的http服务器,受到了java Servlets的启发,因为是Qt写的,所以有跨平台的支持. QtWebApp包含如下的组成部分:   ...

  3. Qt文档阅读笔记-QHostInfo官方解析与实例(根据Host获取IP)

    官方解析 QHostInfo提供了一个静态方法获取主机名: QHostInfo中有一个查找机制,可以根据IP找主机名,也可能工具主机名找IP,可以通过调用QHostInfo::lookupHost这个 ...

  4. Qt文档阅读笔记-QTcpServer官方解析与实例(使用QSocket创建简单的HTTP服务器)

    目录 官方解析 博主例子(做一个简单的HTTP服务器) 本例子中HTTP协议关键点 官方解析 QTcpServer类,提供TCP服务的基础: 这个类接受TCP连接,可以指定一个端口,也可以让其自动一个 ...

  5. Qt文档阅读笔记-QWebPage官方解析与实例

    目录 官方解析 博主例子 源码下载地址 官方解析 QWebPage提供一个视图对象和一个web页面: QWebPage提供了web页面的内容,各种设置(是否支持JavaScript等)和连接,它与QW ...

  6. Qt文档阅读笔记-QWebView官方解析与实例

    目录 背景 官方解析 博主例子 背景 最近发现某Qt项目,出现的效果杠杆的,在看某一小功能的时候,发现有个echart的东西,百度了发现,真的是一个新大陆,Qt加web编程,贼吉尔可怕. 在此发现使用 ...

  7. Qt文档阅读笔记-Q_CLASSINFO官方解析与实例

    官方解析 Q_CLASSINFO 这个宏为类提供额外的信息,要想获取这个Q_CLASSINFO这个信息要使用QObject::metaObject().Qt在Active Qt,Qt D-BUS以及Q ...

  8. Qt文档阅读笔记-stackUnder官方解析与实例

    目录 官方解析 博主例子 官方解析 这里可以配合raise()和lower()这两个函数来使用! 博主例子 用2个label,点击谁谁就浮在界面的最上面,很简单的代码,程序运行截图如下: 源码如下: ...

  9. Qt文档阅读笔记-windowOpacity官方解析及实例(两种方法使得程序渐变出现)

    目录 官方解析 博主例子 官方解析 windowOpacity 这个属性控制窗口的透明度. 他的取值范围是1.0(不透明)至0.0(全透明). 默认情况下,这个属性的值是1.0. 这个属性在Linux ...

最新文章

  1. OpenGL如何处理多个纹理
  2. 台湾一校长震动所有中国人的演讲
  3. 【转载】分布式之redis复习精讲
  4. ManulResetEvent与AutoResetEvent
  5. spring催办业务_业务后台系统之流程设计
  6. 学习笔记 : 表达式目录树相关问题参照该demo expression拼接与拆解 expression转sql...
  7. spark中local模式与cluster模式使用场景_详细总结spark基于standalone、yarn集群提交作业流程...
  8. 操作系统实践 job3
  9. 走出“胡同”后,智能家居如何驶上高速路?
  10. font setup -- dejavu 安装字体
  11. 数据库原理基本SQL语句练习题及答案1
  12. 佳博80系列小票打印机 gp 80180安装驱动,显示打印错误
  13. 未来计算机的硬件发展趋势,整理计算机硬件发展史以及计算机硬件发展趋势
  14. LDAP ObjectClass 详解
  15. c语言 解元二次函数的源代码,学霸强推,高中数学万能解题方法,对数学一筹莫展的你必看!...
  16. ae字体预设下载_20组经典的文字动画AE源文件,含20个AE预设
  17. 关于python的开发软件pycharm设置中文(无需汉化包)
  18. ubuntu xfce美化
  19. 判断dll的.netframwork的版本的两种方式
  20. 小哨兵硬件还原卡安装方法

热门文章

  1. Java朝花夕拾の实现Comparable接口
  2. 修改weblogic(10.3)域的启动JDK
  3. 调研了10家公司的技术架构,我总结出了一套大数据平台的套路
  4. 码农回忆刚毕业工作的那年
  5. 百度声明:从未答应屏蔽三鹿负面
  6. 为什么我建议每个开发人员都需要学Python?不看会后悔!
  7. 北妈每日一题:如何甩锅给后端!
  8. 你真的适合做前端吗?自学入行的那些坑
  9. php怎么获得产品id,php – 如何获取Woocommerce产品中的Variation ID
  10. java接口自动化demo_第一个java 接口自动化程序