DPS/DataPlatform/QWaiting.cpp

62 lines
1.6 KiB
C++
Raw Normal View History

2025-06-23 10:41:33 +08:00
#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);
}