PowerModeler/source/messageDialog.cpp

81 lines
2.3 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")
{
2025-04-03 18:01:23 +08:00
//Linux下默认的Qt::Dialog即使有父窗口也无法按照子窗口的行为进行展示并且最大、最小按钮不好关闭因此需要去掉Dialog属性随之而来的问题是模态无法起作用
setWindowFlags(windowFlags() & ~Qt::Dialog);
setStyleSheet("QDialog{border: 1px solid rgb(205,205,205);border-radius:5px;background-color:rgb(245,245,245);background-color:rgb(245,245,245);}");
2025-04-03 16:48:21 +08:00
}
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()
{
close();
//emit sgl_hide();
2025-03-14 16:06:20 +08:00
}
void MessageDialog::onBtnClicked_yes()
{
g_msgDlgBtn = btn_Yes;
close();
//emit sgl_hide();
2025-03-14 16:06:20 +08:00
}
void MessageDialog::onBtnClicked_no()
{
g_msgDlgBtn = btn_No;
close();
//emit sgl_hide();
2025-03-14 16:06:20 +08:00
}