QMessageBox msgBox;

msgBox.setText(tr("The document has been modified."));

msgBox.setInformativeText(tr("Do you want to save your changes?"));

msgBox.setDetailedText(tr("Differences here..."));

msgBox.setStandardButtons(QMessageBox::Save

                          | QMessageBox::Discard

                          | QMessageBox::Cancel);

msgBox.setDefaultButton(QMessageBox::Save);

int ret = msgBox.exec();

switch (ret) {

case QMessageBox::Save:

    qDebug() << "Save document!";

    break;

case QMessageBox::Discard:

    qDebug() << "Discard changes!";

    break;

case QMessageBox::Cancel:

    qDebug() << "Close document!";

    break;

}



msgBox 是一个建立在栈上的QMessageBox实例。我们设置其主要文本信息为“The document has been modified.”,informativeText 则是会在对话框中显示的简单说明文字。下面我们使用了一个detailedText,也就是详细信息,当我们点击了详细信息按钮时,对话框可以自动显示更多信息。我们自己定义的对话框的按钮有三个:保存、丢弃和取消。然后我们使用了exec()是其成为一个模态对话框,根据其返回值进行相应的操作。


引用地址:http://www.devbean.net/2012/09/qt-study-road-2-standard-dialogs-qmessagebox/