Qt开发自学7_倒计时和动画显示
生活随笔
收集整理的這篇文章主要介紹了
Qt开发自学7_倒计时和动画显示
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
20200530
實(shí)現(xiàn)目標(biāo):LCD倒計(jì)時(shí)完畢后,全屏播放動畫
?
布局:TextLabel、LCDNumber,
Ctrl+G? ?柵格布局(二分天下)后,把任何一個隱藏,另一個就全屏
?
頭文件中定義:(1)槽函數(shù),(2)倒計(jì)時(shí)數(shù)字 index,(3)計(jì)時(shí)器 QTimer *myTimer;,(4)動畫全局變量 QMovie *movie;,(5)初始化函數(shù) Init();
?
*.cpp代碼如下:
#include "widget.h" #include "ui_widget.h" #include <QMovie> #include <QDebug>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);Init(); }Widget::~Widget() {delete ui; }void Widget::Init(){index = 10; //從10開始--ui->lcdNumber->display(index);//一開始就顯示10,沒有這句的話一開始顯示的是0.ui->label->hide();//倒計(jì)時(shí)myTimer = new QTimer(this);//父親:當(dāng)前對象傳遞進(jìn)去connect(myTimer,SIGNAL(timeout()),this,SLOT(doProcessTimeout()));myTimer->start(1000);//1s倒計(jì)時(shí)1次//播放動畫movie = new QMovie(this);//movie定義為全局的對象,把當(dāng)前對象傳進(jìn)去movie->setFileName("../20200530/pikaqiu.gif");ui->label->setMovie(movie);ui->label->setScaledContents(true);//縮放:內(nèi)容跟著窗體的縮小/放大而縮小/放大}void Widget::doProcessTimeout(){index--;if(index==0){myTimer->stop();//從10開始倒計(jì)時(shí),到這里停止計(jì)時(shí)movie->start();//開始播放動畫ui->label->show();ui->lcdNumber->hide();this->showFullScreen();//當(dāng)前對象全屏顯示}ui->lcdNumber->display(index);qDebug()<<index<<endl; }特別用途:? ??
? ? ? ?(1) ui->label->setScaledContents(true);? ? ?//縮放:內(nèi)容跟著窗體的縮小/放大而縮小/放大
? ? ? ?(2)? this->showFullScreen();? ? ?//當(dāng)前對象全屏顯示
?
*.h代碼如下:槽,倒計(jì)時(shí)數(shù)字,計(jì)時(shí)器,動畫全局變量,初始化函數(shù)
#ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer> #include <QMovie>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private slots:void doProcessTimeout();private:Ui::Widget *ui;int index;//倒計(jì)時(shí)數(shù)字QTimer *myTimer;//計(jì)時(shí)器,頭文件includeQMovie *movie;//全局變量,頭文件includevoid Init(); };#endif // WIDGET_H?
總結(jié)
以上是生活随笔為你收集整理的Qt开发自学7_倒计时和动画显示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Qt Quick聊天软件练习】二、登录
- 下一篇: php10501 怎么解决,龙三公子博客