Files
CodeRepository/Apps/App_MqttClient/common/custommessagebox.cpp
chenzhen 222dda1e43 1,新增“App_ThermalImageSystem”;
2,新增“Apps”;
3,新增“Common”;
4,新增“FileList”;
5,新增“MediaX”;
6,新增“OpenSource”;
7,新增“Samples”;
8,新增“SoftwareBusinessLines”.
2026-02-14 23:03:23 +08:00

121 lines
3.3 KiB
C++

#include "custommessagebox.h"
#include "ui_custommessagebox.h"
#include "commonhelper.h"
CustomMessageBox::CustomMessageBox(QWidget* parent) :
QDialog(parent),
ui(new Ui::CustomMessageBox)
{
ui->setupUi(this);
this->mousePressed = false;
//设置窗体标题栏隐藏
this->setWindowFlags(Qt::FramelessWindowHint);
//设置窗体关闭时自动释放内存
this->setAttribute(Qt::WA_DeleteOnClose);
//关联关闭按钮
connect(ui->btnCloseMenu, SIGNAL(clicked()), this, SLOT(close()));
connect(ui->btnCancel, SIGNAL(clicked()), this, SLOT(close()));
//窗体居中显示
CommonHelper::FormInCenter(this);
ui->lblTitle->installEventFilter(this);
}
CustomMessageBox::~CustomMessageBox()
{
delete ui;
}
void CustomMessageBox::SetMessage(const QString& msg, int type, const QString& title)
{
if (type == 0)
{
ui->labIcoMain->setStyleSheet("border-image: url(:/skin/image/blue/ok.png);");
ui->btnCancel->setVisible(false);
ui->lblTitle->setText(title);
}
else if (type == 1)
{
ui->labIcoMain->setStyleSheet("border-image: url(:/skin/image/blue/question.png);");
ui->lblTitle->setText(title);
}
else if (type == 2)
{
ui->labIcoMain->setStyleSheet("border-image: url(:/skin/image/blue/error.png);");
ui->btnCancel->setVisible(false);
ui->lblTitle->setText(title);
}
else if (type == 3)
{
ui->labIcoMain->setStyleSheet("border-image: url(:/skin/image/blue/info.png);");
ui->btnCancel->setVisible(false);
ui->lblTitle->setText(title);
}
ui->labInfo->setText(msg);
}
bool CustomMessageBox::eventFilter(QObject* obj, QEvent* event)
{
if (ui->lblTitle == obj)
{
if (event->type() == QEvent::MouseButtonPress)
{
QMouseEvent* mouseEvent = dynamic_cast<QMouseEvent*>(event);
if (mouseEvent->button() == Qt::LeftButton)
{
mousePressed = true;
mousePoint = mouseEvent->globalPos() - pos();
mouseEvent->accept();
return true;
}
}
else if (event->type() == QEvent::MouseMove)
{
QMouseEvent* mouseEvent = dynamic_cast<QMouseEvent*>(event);
if (mousePressed && this->windowState() != Qt::WindowMaximized)
{
if (mouseEvent->globalY() <= qApp->desktop()->availableGeometry().bottom())
{
move(mouseEvent->globalPos() - mousePoint);
mouseEvent->accept();
}
else
{
qApp->desktop()->cursor().setPos(
qApp->desktop()->cursor().pos().x(),
qApp->desktop()->availableGeometry().bottom()
);
}
return true;
}
}
else if (event->type() == QEvent::MouseButtonRelease)
{
QMouseEvent* mouseEvent = dynamic_cast<QMouseEvent*>(event);
if (mouseEvent->button() == Qt::LeftButton)
{
mousePressed = false;
mouseEvent->accept();
return true;
}
}
}
return QObject::eventFilter(obj, event);
}
void CustomMessageBox::on_btnOk_clicked()
{
done(1);
this->close();
}