消息框上的 X 按钮与框的取消按钮

问题描述

我在理解 QMessage 框的功能如何工作时遇到了一些困难。在这里,我创建了一个带有按钮的简单对话框。

enter image description here

点击那个按钮。它将显示一个 QMessageBox

enter image description here

下面我附上了代码


void dialog::on_pushButton_clicked()
{
    QMessageBox Box;
    Box.setText("Choose An Option");
    QPushButton *pdiscardChangesBtn = Box.addButton("discard Changes",QMessageBox::RejectRole);
    QPushButton *pSaveChangesBtn = Box.addButton("Save Changes",QMessageBox::AcceptRole);

    Box.setDefaultButton(pSaveChangesBtn);
    Box.exec();

    if(Box.clickedButton() == pSaveChangesBtn) {
        qInfo() << "Save Changes Button Clicked";
    }
    else if(Box.clickedButton() == pdiscardChangesBtn) {
        qInfo() << "discard Changes Button clicked";
    }
    else
    {
        qInfo() << "Closed";
    }


}

这里我附上了终端的输出

enter image description here

我首先选择“Save Changes”btn,然后选择“discard Changes”btn,MessageBox 窗口的 X 按钮,得到了上述输出

在这里,我注意到在单击“放弃更改”btn 时,正在执行 Windows 相同代码块(否则如果块)的 X 按钮。

我的疑问是

  1. 为什么会这样?在内部它们是相同的还是调用相同的方法
  2. 如何在单击 X 按钮时执行 else 块中的代码

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)