88 lines
2.4 KiB
C++
88 lines
2.4 KiB
C++
#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();
|
||
}
|
||
|