有一段代码msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Close);我需要两个功能,选OK时进入另一个消息盒子,选Close则关闭这个消息盒子,但不关闭窗口
时间: 2024-02-08 19:03:11 浏览: 59
基于python的QMessageBox的标准按钮类型
您可以使用QMessageBox::buttonClicked()信号来实现这个功能。具体实现方法如下:
```
#include <QApplication>
#include <QSpinBox>
#include <QMessageBox>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QSpinBox spinBox;
spinBox.setRange(0, 100);
spinBox.setValue(50);
QMessageBox msgBox;
msgBox.setText("Do you want to continue?");
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Close);
msgBox.setDefaultButton(QMessageBox::Ok);
int ret = msgBox.exec();
if (ret == QMessageBox::Ok) {
QMessageBox::information(nullptr, "SpinBox Value", "The value of the SpinBox is " + QString::number(spinBox.value()), QMessageBox::Ok);
} else if (ret == QMessageBox::Close) {
msgBox.close();
}
return 0;
}
```
在这里,我们首先创建一个SpinBox并将其范围设置为0到100,然后将其值设置为50。接下来,我们创建一个QMessageBox并设置文本和标准按钮。我们还将默认按钮设置为“确定”按钮。然后,我们使用QMessageBox::exec()显示消息框,并等待用户的响应。如果用户单击“确定”按钮,我们使用QMessageBox::information()显示SpinBox的值。如果用户单击“关闭”按钮,我们使用QMessageBox::close()关闭消息框。请注意,我们没有使用QApplication::quit()来关闭应用程序,因此窗口不会关闭。
阅读全文