微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决消息框上的 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 举报,一经查实,本站将立刻删除。