天天看点

Qt 5 等待提示框(开源 动态图)

        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

继续阅读