QT QMessageBox如何判断触发过
时间: 2023-12-04 07:40:08 浏览: 64
可以通过QMessageBox::StandardButton类型的返回值来判断用户是否触发了QMessageBox。例如,如果用户点击了Yes按钮,则返回QMessageBox::Yes,如果用户点击了No按钮,则返回QMessageBox::No。可以使用以下代码来实现:
```cpp
QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save);
int ret = msgBox.exec();
switch (ret) {
case QMessageBox::Save:
// Save was clicked
break;
case QMessageBox::Discard:
// Don't Save was clicked
break;
case QMessageBox::Cancel:
// Cancel was clicked
break;
default:
// should never be reached
break;
}
```
在这个例子中,当用户点击Save、Discard或Cancel按钮时,会分别返回QMessageBox::Save、QMessageBox::Discard和QMessageBox::Cancel。然后,可以使用switch语句来根据返回值执行相应的操作。
阅读全文