PowerModeler/source/messageDialog.cpp

81 lines
2.2 KiB
C++
Raw Normal View History

2025-03-14 16:06:20 +08:00
#include "messageDialog.h"
#include "ui_messageDialog.h"
MessageDialogBtn g_msgDlgBtn = btn_Null;
MessageDialog::MessageDialog(QWidget *parent)
: QDialog(parent)
, ui(new Ui::messageDialog)
{
ui->setupUi(this);
if(QSysInfo::kernelType() == "linux")
{
//Linux下默认的Qt::Dialog即使有父窗口也无法按照子窗口的行为进行展示并且最大、最小按钮不好关闭去边框后是简单的解决上述问题的方法
setWindowFlags(Qt::FramelessWindowHint);
2025-04-03 16:48:21 +08:00
setStyleSheet("QDialog{border: 1px solid rgb(205,205,205);border-radius:5px;background-color:rgb(250,250,250);}");
}
else
{
setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint);//去掉关闭按钮和图标
setFixedSize(width(), height()); //不可缩放
}
2025-03-14 16:06:20 +08:00
connect(ui->btnConfrim, SIGNAL(clicked()), this, SLOT(onBtnClicked_confirm()));
connect(ui->btnYes, SIGNAL(clicked()), this, SLOT(onBtnClicked_yes()));
connect(ui->btnNo, SIGNAL(clicked()), this, SLOT(onBtnClicked_no()));
}
MessageDialog::~MessageDialog()
{
delete ui;
}
void MessageDialog::setType(MessageDialogType type)
{
if(type == type_information)
{
ui->typeLabel->setStyleSheet("border-image: url(:/img/images/icon_information.png);");
ui->stackedWidget->setCurrentIndex(0);
}
else if(type == type_question)
{
ui->typeLabel->setStyleSheet("border-image: url(:/img/images/icon_question.png);");
ui->stackedWidget->setCurrentIndex(1);
}
else if(type == type_warning)
{
ui->typeLabel->setStyleSheet("border-image: url(:/img/images/icon_no.png);");
ui->stackedWidget->setCurrentIndex(0);
}
}
void MessageDialog::setMessage(MessageDialogType type,const QString& strTitle,const QString& strContent)
{
setType(type);
ui->labelTitle->setText(strTitle);
setWindowTitle(strTitle);
ui->labelContent->setText(strContent);
}
void MessageDialog::onBtnClicked_confirm()
{
hide();
emit sgl_hide();
}
void MessageDialog::onBtnClicked_yes()
{
g_msgDlgBtn = btn_Yes;
hide();
emit sgl_hide();
}
void MessageDialog::onBtnClicked_no()
{
g_msgDlgBtn = btn_No;
hide();
emit sgl_hide();
}