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