QT 使用 GIF動态圖來實作等待提示框
本文作者原創,轉載請附上文章出處與本文連結。
效果圖:
.H
#ifndef DIALOG_LOADING_H
#define DIALOG_LOADING_H
#include <QDialog>
#include <QDesktopWidget>
#include <QMovie>
namespace Ui {
class dialog_loading;
}
class dialog_loading : public QDialog
{
Q_OBJECT
public:
explicit dialog_loading(QWidget *parent = nullptr);
~dialog_loading();
int OnInitDialog(QString imageFile);
private:
Ui::dialog_loading *ui;
};
#endif // DIALOG_LOADING_H
.CPP
#include "dialog_loading.h"
#include "ui_dialog_loading.h"
dialog_loading::dialog_loading(QWidget *parent) :
QDialog(parent),
ui(new Ui::dialog_loading)
{
ui->setupUi(this);
setWindowFlags(Qt::FramelessWindowHint);//無邊框
setAttribute(Qt::WA_TranslucentBackground);//背景透明
//螢幕居中顯示
int frmX = width();
int frmY = height();
QDesktopWidget w;
int deskWidth = w.width();
int deskHeight = w.height();
QPoint movePoint(deskWidth / 2 - frmX / 2, deskHeight / 2 - frmY / 2);
move(movePoint);
//border-image: url(:/new/image/image/loading.gif)
//加載gif圖檔
QMovie *movie = new QMovie(":/new/image/image/loading.gif");
ui->label_gif->setMovie(movie);
movie->start();
}
dialog_loading::~dialog_loading()
{
delete ui;
}
同時也提供了源碼下載下傳:
分為DLL生産項目和調用項目,因為主要是想看看封裝成DLL後的效果,是以順便就寫出來了。
下載下傳位址:https://download.csdn.net/download/qq_37529913/33148807