62 lines
1.6 KiB
C++
62 lines
1.6 KiB
C++
|
#pragma execution_character_set("utf-8")
|
|||
|
|
|||
|
#include "QWaiting.h"
|
|||
|
#include <QMovie>
|
|||
|
#include <qlabel.h>
|
|||
|
#include <QVBoxLayout>
|
|||
|
#include <QApplication>
|
|||
|
|
|||
|
QWaitingDialog::QWaitingDialog(QWidget* parent, QString msg)
|
|||
|
: QDialog(parent)
|
|||
|
, m_Move(nullptr),
|
|||
|
labelmsg(nullptr)
|
|||
|
{
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD><EFBFBD>
|
|||
|
//this->setWindowOpacity(0.9);
|
|||
|
this->setAttribute(Qt::WA_TranslucentBackground);
|
|||
|
|
|||
|
//ȡ<><C8A1><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
setWindowFlags(Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint);//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F1A3ACB2><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD>߿<EFBFBD>
|
|||
|
setWindowModality(Qt::WindowModal);//<2F><><EFBFBD><EFBFBD>Ϊģʽ<C4A3>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>ͬʱ<CDAC>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD>öԻ<C3B6><D4BB><EFBFBD>ʱҪ<CAB1><D2AA><EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
auto label = new QLabel(this);
|
|||
|
labelmsg = new QLabel(this);
|
|||
|
labelmsg->setText(msg);
|
|||
|
QVBoxLayout* vlayout = new QVBoxLayout(this);
|
|||
|
//label->setMaximumWidth(40);
|
|||
|
vlayout->addWidget(label, 0, Qt::AlignCenter);
|
|||
|
vlayout->addWidget(labelmsg, 0, Qt::AlignCenter);
|
|||
|
this->setLayout(vlayout);
|
|||
|
label->setStyleSheet("background-color: transparent;");
|
|||
|
m_Move = new QMovie(":/loading.gif");
|
|||
|
label->setMovie(m_Move);
|
|||
|
//label->setScaledContents(true);
|
|||
|
m_Move->start();
|
|||
|
}
|
|||
|
void QWaitingDialog::changeMessage(QString msg)
|
|||
|
{
|
|||
|
labelmsg->setText(msg);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
QWaitingDialog::~QWaitingDialog()
|
|||
|
{
|
|||
|
m_Move->stop();
|
|||
|
|
|||
|
}
|
|||
|
QWaiting::QWaiting(QWidget* parent, QString msg) :QObject(parent) {
|
|||
|
//QApplication::setOverrideCursor(Qt::WaitCursor);
|
|||
|
_dialog = new QWaitingDialog(parent, msg);
|
|||
|
_dialog->show();
|
|||
|
|
|||
|
//QApplication::restoreOverrideCursor();
|
|||
|
}
|
|||
|
QWaiting::~QWaiting() {
|
|||
|
_dialog->close();
|
|||
|
}
|
|||
|
void QWaiting::changeMessage(QString msg)
|
|||
|
{
|
|||
|
_dialog->changeMessage(msg);
|
|||
|
QApplication::processEvents(QEventLoop::AllEvents);
|
|||
|
}
|