Qt 当我单击X按钮时,QMessageBox不会关闭

Qt 当我单击X按钮时,QMessageBox不会关闭,qt,user-interface,qmessagebox,Qt,User Interface,Qmessagebox,我有以下代码 1) 文件对话框.h class Dialog : public QDialog { Q_OBJECT public: Dialog(QWidget *parent = 0); private slots: void questionMessage(); }; 案例1: 2) dialog.cpp void Dialog::questionMessage() { QMessageBox::StandardButton reply; reply

我有以下代码

1) 文件对话框.h

class Dialog : public QDialog
{
Q_OBJECT

public:
    Dialog(QWidget *parent = 0);

private slots:
    void questionMessage();
};
案例1:

2) dialog.cpp

void Dialog::questionMessage()
{
    QMessageBox::StandardButton reply;
    reply = QMessageBox::question(this, tr("QMessageBox::question()"),
                                MESSAGE,
                                QMessageBox::Yes | QMessageBox::No  );

    if (reply == QMessageBox::Yes)
        qDebug() << "Yes";
    else if (reply == QMessageBox::No)
       qDebug() << "No";
    else
       qDebug() << "Cancel";
  }
void Dialog::questionMessage()
{
QMessageBox::标准按钮回复;
reply=QMessageBox::question(这个,tr(“QMessageBox::question()”),
消息
QMessageBox::Yes | QMessageBox::No);
if(reply==QMessageBox::Yes)

qDebug()我刚刚试过你的代码,但没有你说的行为。你使用的是哪个版本的qt。qt 5.7.1所以Linux在另一篇文章中也有类似的观察结果,请看下面的答案:
void Dialog::questionMessage()
{
    QMessageBox::StandardButton reply;
    reply = QMessageBox::question(this, tr("QMessageBox::question()"),
               "MESSAGE",
               QMessageBox::Yes | QMessageBox::No |  QMessageBox::Cancel);       

    if (reply == QMessageBox::Yes)
        qDebug() << "Yes";
    else if (reply == QMessageBox::No)
       qDebug() << "No";
    else
       qDebug() << "Cancel";
  }