在QMessageBox消息对话框中,可以使用QMessageBox::StandardButton枚举类型的返回值来判断用户点击了哪个按钮。其中包括了Yes、No、Cancel等常用按钮。
下面是一个示例代码,在窗口关闭时弹出消息对话框询问是否退出:
void MyWidget::closeEvent(QCloseEvent *event)
{
// 弹出消息对话框
QMessageBox::StandardButton button = QMessageBox::question(this, tr("退出程序"),
tr("确定要退出吗?"), QMessageBox::Yes | QMessageBox::No);
if (button == QMessageBox::Yes) {
event->accept(); // 确认退出
} else {
event->ignore(); // 取消退出
}
}
其中,如果用户点击了“确定”按钮,则执行event->accept()
确认退出;如果用户点击了“取消”按钮,则执行event->ignore()
取消退出。