QMessageBox按确定不关闭QMessageBox窗口
时间: 2024-03-13 10:41:51 浏览: 142
qt5信息提示框QMessageBox用法 - 莫水千流 - 博客园1
QMessageBox是Qt框架中的一个对话框类,用于显示消息和提示信息。默认情况下,当用户点击QMessageBox的确定按钮时,对话框会自动关闭。如果你希望按下确定按钮后不关闭QMessageBox窗口,可以通过以下两种方式实现:
1. 使用setStandardButtons()方法:
通过调用QMessageBox的setStandardButtons()方法,可以设置对话框的标准按钮。你可以将确定按钮设置为默认按钮,并将其关联到一个自定义的槽函数,以实现按下确定按钮后不关闭窗口的效果。示例代码如下:
```cpp
QMessageBox msgBox;
msgBox.setText("Message");
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.setDefaultButton(QMessageBox::Ok);
QObject::connect(msgBox.button(QMessageBox::Ok), &QPushButton::clicked, [&msgBox]() {
// 自定义槽函数,不关闭窗口
// 执行你想要的操作
});
msgBox.exec();
```
2. 使用setEscapeButton()方法:
通过调用QMessageBox的setEscapeButton()方法,可以设置对话框的取消按钮。将取消按钮设置为默认按钮,并将其关联到一个自定义的槽函数,以实现按下确定按钮后不关闭窗口的效果。示例代码如下:
```cpp
QMessageBox msgBox;
msgBox.setText("Message");
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Cancel);
msgBox.setEscapeButton(QMessageBox::Cancel);
QObject::connect(msgBox.button(QMessageBox::Cancel), &QPushButton::clicked, [&msgBox]() {
// 自定义槽函数,不关闭窗口
// 执行你想要的操作
});
msgBox.exec();
```
希望以上解答对你有帮助!
阅读全文