日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt文档阅读笔记-QPropertyAnimation官方解析及实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

官方解析

博主例子


官方解析

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官方解析及实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。