一、详细说明
QMessageBox类提供一个模态对话框,用于通知用户或询问用户一个问题并接收答案。
消息框显示一个主要文本,用于向用户提示某个情况;显示一个信息文本,用于进一步解释警报或向用户询问问题;显示一个可选的详细文本,用于在用户请求时提供更多数据。消息框还可以显示用于接受用户响应的图标和标准按钮。
提供了两个用于使用QMessageBox的API,即基于属性的API和静态函数。调用其中一个静态函数比较简单
1.基于属性的API
要使用基于属性的API,请构造QMessageBox的一个实例,设置所需的属性,并调用exec()来显示消息。最简单的配置是仅设置message text属性。
QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.exec();
用户必须单击OK按钮来取消消息框。在消息框被取消之前,GUI的其余部分将被阻塞。
除了提醒用户注意某个事件之外,还有一种更好的方法,那就是询问用户应该怎么做。将问题存储在信息文本属性中,并将标准按钮属性设置为您希望的按钮集,即用户响应集。通过使用按位或操作符组合来自StandardButtons的值来指定按钮。按钮的显示顺序依赖于平台。例如,在Windows上,Save显示在Cancel的左边,而在Mac OS上,顺序相反。
将一个标准按钮标记为默认按钮。
QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel