PowerModeler/source/messageBox.cpp

88 lines
2.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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(110,110,110);border-radius:5px;background-color:rgb(30,30,30);}");
}
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();
}