Warm tip: This article is reproduced from serverfault.com, please click

c++-是/否使用QMessageBox的消息框

(c++ - Yes/No message box using QMessageBox)

发布于 2012-10-28 18:24:20

如何在Qt中显示带有“是/否”按钮的消息框,以及如何检查按下了哪个按钮?

即一个消息框看起来像这样:

在此处输入图片说明

Questioner
sashoalm
Viewed
0
Mat 2013-08-07 19:44:57

你将为此使用QMessageBox::question

假设的小部件插槽中的示例:

#include <QApplication>
#include <QMessageBox>
#include <QDebug>

// ...

void MyWidget::someSlot() {
  QMessageBox::StandardButton reply;
  reply = QMessageBox::question(this, "Test", "Quit?",
                                QMessageBox::Yes|QMessageBox::No);
  if (reply == QMessageBox::Yes) {
    qDebug() << "Yes was clicked";
    QApplication::quit();
  } else {
    qDebug() << "Yes was *not* clicked";
  }
}

应该在Qt 4和5上工作,QT += widgets在Qt 5和CONFIG += consoleWin32上要求查看qDebug()输出。

请参阅StandardButton枚举以获取可以使用的按钮列表;有关详细信息,请参见枚举。该函数返回被单击的按钮。你可以使用额外的参数设置默认按钮(如果你未指定或指定,Qt会自动选择一个合适的默认值QMessageBox::NoButton)。