QT中常用的消息对话框包括:
类别 | 作用 |
---|---|
Question | 询问类消息框,包含是或否 |
Information | 提示类消息框,仅包含确定 |
Warning | 警告类消息框,伴随系统警告音,包含多个按钮 |
Critical | 错误类消息框,伴随系统错误提示音 |
About | 关于产品类消息框 |
Custom | 自定义消息框 |
消息框基本样式展示
注:使用消息框,需要在.h中的private slots中声明消息框的函数,在.cpp中将函数完整声明代码内容,并在需要弹出消息框的位置进行调用。
具体实现方案如下:
Question消息框
构造函数:
StandardButton QMessageBox::question
(
QWidget* parent, //消息框的父窗口指针
const QString& title, //消息框的标题栏
const QString& text, //消息框的文字提示信息
StandardButtons buttons=Ok, //注(1)
StandardButton defaultButton=NoButton //注(2)
);
实现方法
void Dialog::showQuestionMsg()
{
label->setText(tr("Question Message Box"));
switch(QMessageBox::question(this,tr("提示"),
tr("文档将最小化显示,是否继续?"),
QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok))
{
case QMessageBox::Ok:
label->setText("Question button/Ok");
break;
case QMessageBox::Cancel:
label->setText("Question button/Cancel");
break;
default:
break;
}
return;
}
Information消息框
构造函数
StandardButton QMessageBox::information
(
QWidget*parent, //消息框的父窗口指针
const QString& title, //消息框的标题栏
const QString& text, //消息框的文字提示信息
StandardButtonsbuttons=Ok, //同Question消息框的注释内容
StandardButton defaultButton=NoButton //同Question消息框的注释内容
);
实现方法
void Dialog::showInformationMsg()
{
label->setText(tr("Information Message Box"));
QMessageBox::information(this,tr("检查更新"),
tr("该软件已是最新版本"));
return;
}
Warning消息框
构造函数
StandardButton QMessageBox::warning
(
QWidget* parent, //消息框的父窗口指针
const QString& title, //消息框的标题栏
const QString& text, //消息框的文字提示信息
StandardButtonsbuttons=Ok, //同Question消息框的注释内容
StandardButton defaultButton=NoButton //同Question消息框的注释内容
);
实现方法
void Dialog::showWarningMsg()
{
label->setText(tr("Warning Message Box"));
switch(QMessageBox::warning(this,tr("提示"),
tr("您修改的内容还未保存,是否要保存对文档的修改?"),
QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,
QMessageBox::Save))
{
case QMessageBox::Save:
label->setText(tr("Warning button/Save"));
break;
case QMessageBox::Discard:
label->setText(tr("Warning button/Discard"));
break;
case QMessageBox::Cancel:
label->setText(tr("Warning button/Cancel"));
break;
default:
break;
}
return;
}
Critical消息框
构造函数
StandardButton QMessageBox::critical
(
QWidget* parent, //消息框的父窗口指针
const QString& title, //消息框的标题栏
const QString& text, //消息框的文字提示信息
StandardButtonsbuttons=Ok, //同Question消息框的注释内容
StandardButton defaultButton=NoButton //同Question消息框的注释内容
);
实现方法
void Dialog::showCriticalMsg()
{
label->setText(tr("Critical Message Box"));
QMessageBox::critical(this,tr("错误"),tr("文件路径错误,请重新选择!"));
return;
}
About消息框
构造函数
void QMessageBox::about
(
QWidget* parent, //消息框的父窗口指针
const QString& title, //消息框的标题栏
const QString& text //消息框的文字提示信息
);
实现方法
void Dialog::showAboutMsg()
{
label->setText(tr("About Message Box"));
QMessageBox::about(this,tr("关于软件"),tr("V4.31 已是最新版本 ©Copyright 2019 iXiaochu"));
return;
}
About Qt消息框
构造函数
void QMessageBox::aboutQt
(
QWidget* parent, //消息框的父窗口指针
const QString& title=QString() //消息框的标题栏
);
实现方法
void Dialog::showAboutQtMsg()
{
label->setText(tr("About Qt Message Box"));
QMessageBox::aboutQt(this,tr("About Qt消息框"));
return;
}