QMessageBox怎么判断那个按钮被按下
时间: 2024-01-07 21:53:07 浏览: 75
QMessageBox.exec()函数返回一个整数值,表示哪个按钮被按下。可以使用这个返回值来判断哪个按钮被按下了。例如,对于标准的信息框,Ok 按钮的返回值是QMessageBox.Ok,可以使用以下代码来判断Ok按钮是否被按下:
```
reply = QMessageBox.information(self, "title", "message", QMessageBox.Ok | QMessageBox.Cancel, QMessageBox.Ok)
if reply == QMessageBox.Ok:
# Ok button is pressed
# do something
elif reply == QMessageBox.Cancel:
# Cancel button is pressed
# do something else
```
相关问题
QMessageBox 禁用close按钮
你可以通过设置窗口的关闭按钮属性来禁用 QMessageBox 的关闭按钮。在创建 QMessageBox 对象后,使用 setWindowFlags 方法来设置窗口的属性。下面是一个示例代码片段:
```cpp
QMessageBox msgBox;
msgBox.setWindowTitle("Message Box");
msgBox.setText("This is a message box.");
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.setDefaultButton(QMessageBox::Ok);
// 禁用关闭按钮
msgBox.setWindowFlags(msgBox.windowFlags() & ~Qt::WindowCloseButtonHint);
msgBox.exec();
```
通过使用 `setWindowFlags` 方法来移除 `Qt::WindowCloseButtonHint` 标志,可以禁用 QMessageBox 的关闭按钮。请注意,该方法会改变窗口的其他属性,所以你可能需要根据你的需求进行调整。
希望能对你有所帮助!如果有任何问题,请随时提问。
QMessageBox 隐藏关闭按钮
在Qt中,QMessageBox的关闭按钮是一个非标准按钮,它不会被 `setStandardButtons()` 方法所设置,因此我们需要使用另一种方法来隐藏它。
可以使用`QMessageBox::setWindowFlags()`方法来设置消息框的窗口标志,然后通过位运算符`|`将`Qt::CustomizeWindowHint`和`Qt::WindowCloseButtonHint`标志添加到窗口标志中。最后,我们可以使用`QMessageBox::setFixedSize()`方法来设置消息框的大小,以确保其不会被自适应大小的关闭按钮拉伸。
以下是一个隐藏QMessageBox关闭按钮的示例:
```cpp
QMessageBox msgBox;
msgBox.setWindowTitle("Title");
msgBox.setText("Content");
msgBox.setWindowFlags(msgBox.windowFlags() | Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint);
msgBox.setFixedSize(msgBox.sizeHint());
int ret = msgBox.exec();
```
在这个示例中,我们创建了一个消息框,并将`Qt::CustomizeWindowHint`和`Qt::WindowCloseButtonHint`标志添加到其窗口标志中。然后,我们使用`QMessageBox::setFixedSize()`方法来设置消息框的大小。最后,我们执行了消息框并等待用户的响应。
需要注意的是,隐藏关闭按钮可能会使用户无法关闭消息框,因此一定要根据实际情况慎重决定是否隐藏它。
阅读全文