PowerModeler/source/messageBox.cpp

88 lines
2.4 KiB
C++
Raw Normal View History

2025-04-11 17:14:17 +08:00
#include "messageBox.h"
#include "ui_messageDialog.h"
//MessageBoxBtn g_msgBoxBtn = btn_Null;
MessageBox::MessageBox(QWidget *parent)
: QDialog(parent)
, ui(new Ui::messageDialog)
{
ui->setupUi(this);
if(QSysInfo::kernelType() == "linux")
{
//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);}");
}
else
{
setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint);//去掉关闭按钮和图标
setFixedSize(width(), height()); //不可缩放
}
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()));
}
MessageBox::~MessageBox()
{
delete ui;
}
void MessageBox::setType(MessageBoxType type)
{
if(type == t_information)
{
ui->typeLabel->setStyleSheet("border-image: url(:/img/images/icon_information.png);");
ui->stackedWidget->setCurrentIndex(0);
}
else if(type == t_question)
{
ui->typeLabel->setStyleSheet("border-image: url(:/img/images/icon_question.png);");
ui->stackedWidget->setCurrentIndex(1);
}
else if(type == t_warning)
{
ui->typeLabel->setStyleSheet("border-image: url(:/img/images/icon_no.png);");
ui->stackedWidget->setCurrentIndex(0);
}
}
void MessageBox::setMessage(MessageBoxType type,const QString& strTitle,const QString& strContent)
{
setType(type);
ui->labelTitle->setText(strTitle);
setWindowTitle(strTitle);
ui->labelContent->setText(strContent);
}
int MessageBox::show(MessageBoxType type,const QString& strTitle,const QString& strContent)
{
MessageBox msgBox;
msgBox.setMessage(type, strTitle, strContent);
return msgBox.exec();
}
void MessageBox::onBtnClicked_confirm()
{
// hide();
accept();
}
void MessageBox::onBtnClicked_yes()
{
// g_msgDlgBtn = btn_Yes;
// hide();
accept();
}
void MessageBox::onBtnClicked_no()
{
// g_msgDlgBtn = btn_No;
// hide();
reject();
}