• Qt QPropertyAnimation 几行代码快速制作流畅的动画效果


    简介

    QPropertyAnimation Class 是一个控制动画效果的类,诞生自 Qt 4.6 版本。 该类继承自 QVarianAnimation,并支持其它基类相同的动画类,例如:QAnimationGroup 动画组类,该类仅支持继承自 QObject 类的窗口部件。

    以例代劳

    用例子来讲述各个功能,直观,立竿见影。

    头文件

     1 #ifndef MAINWINDOW_H  
     2 #define MAINWINDOW_H  
     3 #include <QMainWindow>  
     4 namespace Ui {  
     5 class MainWindow;  
     6 }  
     7   
     8 class MainWindow : public QMainWindow  
     9 {  
    10     Q_OBJECT  
    11 public:  
    12     explicit MainWindow(QWidget *parent = 0);  
    13     ~MainWindow();  
    14 private:  
    15     Ui::MainWindow *ui;  
    16 };  
    17 #endif // MAINWINDOW_H  

    cpp文件

     1 #include <QPropertyAnimation>  
     2 #include "mainwindow.h"  
     3 #include "ui_mainwindow.h"  
     4   
     5 MainWindow::MainWindow(QWidget *parent) :  
     6     QMainWindow(parent),  
     7     ui(new Ui::MainWindow)  
     8 {  
     9     ui->setupUi(this);  
    10   
    11     /*  声明动画类,并将控制对象 this (this一定是继承自QObject的窗口部件)  以及属性名 "geometry" 传入构造函数  */  
    12     QPropertyAnimation* animation = new QPropertyAnimation(this, "geometry");  
    13     /*  设置动画持续时长为 2 秒钟  */  
    14     animation->setDuration(2000);  
    15     /*  设置动画的起始状态 起始点 (1,2)  起始大小 (3,4)  */  
    16     animation->setStartValue(QRect(1, 2, 3, 4));  
    17     /*  设置动画的结束状态 结束点 (100,200)  结束大小 (300,400)  */  
    18     animation->setEndValue(QRect(100, 200, 300, 400));  
    19     /*  设置动画效果  */  
    20     animation->setEasingCurve(QEasingCurve::OutInExpo);  
    21     /*  开始执行动画 QAbstractAnimation::DeleteWhenStopped 动画结束后进行自清理(效果就好像智能指针里的自动delete animation) */  
    22     animation->start(QAbstractAnimation::DeleteWhenStopped);  
    23 }  
    24   
    25 MainWindow::~MainWindow()  
    26 {  
    27     delete ui;  
    28 }  
  • 相关阅读:
    利用WinCE的精准计时函数来输出pwm信号以便控制舵机
    leafletjs旋转marker
    centos7 NodeJs安装问题:Error: Cannot find module '../lib/utils/unsupported.js'
    Django 自定义存储上传文件的文件名
    后端开发不会前端之表格插件的使用
    Django项目部署之sqlite版本升级
    SQL 循环30日
    SSRS 报表 报表迁移
    SQL SERVER中求上月、本月和下月的第一天和最后一天
    SSRS 报表 日期类表达式
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14944517.html
Copyright © 2020-2023  润新知