总述
QT的QMessageBox类提供了一个模式对话框,用于通知用户或询问用户问题并接收答案。
使用QMessageBox需要:
- 添加库
QT += widgets
- 包含相关头文件
#include <QMessageBox>
通过查看QT官方文档找到QMessageBox的静态成员函数,可以看到其函数声明。
返回值 | 函数名及参数 |
---|---|
void |
about(QWidget *parent, const QString &title, const QString &text) |
void |
aboutQt(QWidget *parent, const QString &title = QString()) |
QMessageBox::StandardButton |
critical(QWidget *parent,const QString &title,const QString &text,QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton= NoButton) |
QMessageBox::StandardButton |
information(QWidget *parent,const QString &title,const QString &text,QMessageBox::StandardButtons buttons = Ok,QMessageBox::StandardButton defaultButton= NoButton) |
QMessageBox::StandardButton |
question(QWidget *parent,const QString &title,const QString &text,QMessageBox::StandardButtons buttons =StandardButtons(Yes|No),QMessageBox::StandardButton defaultButton= NoButton) |
QMessageBox::StandardButton |
warning(QWidget *parent,const QString &title,const QString &text,QMessageBox::StandardButtons buttons = Ok,QMessageBox::StandardButton defaultButton= NoButton) |
总的来说,标准消息对话框QMessageBox类有六种消息框。
静态函数 | 函数说明 |
---|---|
QMessageBox::question | Question消息框 |
QMessageBox::information | Information消息框 |
QMessageBox::warning | Warning消息框 |
QMessageBox::critical | Critical消息框 |
QMessageBox::about | About消息框 |
QMessageBox::aboutQt | AboutQt消息框 |
标准按钮的标志QMessageBox::StandardButton
内容 | 描述 |
---|---|
QMessageBox::Ok | AcceptRole定义的“确定”按钮。 |
QMessageBox::Open | AcceptRole定义的“打开”按钮。 |
QMessageBox::Save | AcceptRole定义的“保存”按钮。 |
QMessageBox::Cancel | RejectRole定义的“取消”按钮。 |
QMessageBox::Close | RejectRole定义的“关闭”按钮。 |
QMessageBox::Discard | DestructiveRole定义的“放弃”或“不保存”按钮。 |
QMessageBox::Apply | ApplyRole定义的“应用”按钮。 |
QMessageBox::Reset | ResetRole定义的“重置”按钮。 |
QMessageBox::RestoreDefaults | ResetRole定义的“恢复默认值”按钮。 |
QMessageBox::Help | HelpRole定义的“帮助”按钮。 |
QMessageBox::SaveAll | AcceptRole定义的“全部保存”按钮。 |
QMessageBox::Yes | YesRole定义的“是”按钮。 |
QMessageBox::YesToAll | YesRole定义的“全部同意”按钮。 |
QMessageBox::No | NoRole定义的“否”按钮。 |
QMessageBox::NoToAll | NoRole定义的“全部拒绝”按钮。 |
QMessageBox::Abort | RejectRole定义的“中止”按钮。 |
QMessageBox::Retry | AcceptRole定义的“重试”按钮。 |
QMessageBox::Ignore | AcceptRole定义的“忽略”按钮。 |
QMessageBox::NoButton | 无效的按钮。 |
消息严重级别
Question | 用于在正常操作期间提出问题。 | |
Information | 用于报告有关正常操作的信息。 | |
Warning | 用于报告非严重错误。 | |
Critical | 用于报告严重错误。 |
Question消息框
函数声明:
QMessageBox::StandardButton
question(QWidget
*parent,const QString
&title,const QString
&text,QMessageBox::StandardButtons
buttons =StandardButtons(Yes|No),QMessageBox::StandardButton
defaultButton= NoButton)
示例代码:
QMessageBox::question(this,
tr("弹窗标题"),
tr("弹窗内容"),
QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::Ok);
效果:
解释:
- 第四个参数buttons指要添加的标准按钮,置为
QMessageBox::Ok | QMessageBox::Cancel
表示添加确认键和取消键。 - 第五个参数defaultButton指定按下Enter键时使用的按钮,若为
QMessageBox::NoButton
则QMessageBox自动选择一个合适的默认值。。 - 函数返回类型为
QMessageBox::StandardButton
,可通过返回值知道用户按下了哪个按钮,以此作为后续操作依据。
Information消息框
Information消息框具有和Question消息框一样的参数和返回值,其使用方法和解释都是一样的。
QMessageBox::information(this,
tr("Information消息框标题"),
tr("这是Information消息框的内容。"),
QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::Ok);
Warning消息框
Warning消息框同上。
QMessageBox::warning(this,
tr("Warning消息框"),
tr("您修改的内容还未保存,是否要保存对文档的修改?"),
QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel,
QMessageBox::Save);
Critical消息框
Critical消息框同上。
在调用时,如果不指定后两个参数,即设置按钮和设置按下时的默认按钮。系统会默认指定。(上述四个消息框都一样。)
QMessageBox::critical(this, tr("Critical消息框"), tr("这是一个Critical消息框!"));
About消息框
About消息框只能指定消息标题和内容,不能设置按钮。
它的函数声明:
void
about(QWidget
*parent,const QString
&title,const QString
&text)
QMessageBox::about(this, tr("About消息框"), tr("这是一个About消息框测试!"));
AboutQt消息框
AboutQt消息框显示了应用程序正在使用的Qt的版本号等信息。
它只能指定标题。其函数声明:
void
aboutQt(QWidget
*parent,const QString
&title = QString())
QMessageBox::aboutQt(this, tr("About Qt消息框"));
总结
消息框显示用于向用户发出警报的主要文本,用于进一步说明警报或询问用户问题的信息性文本,以及用于在用户需要时提供更多数据的可选详细文本。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。