单击标准按钮时如何隐藏QMessageBox?

时间:2018-05-08 06:34:35

标签: c++ qt qmessagebox

我想在这里实现的是,当我点击QMessageBox上的关闭按钮(X)或标准按钮(OK | Yes | No | ...)时,而不是关闭{{1我想隐藏它。

我覆盖QMessageBox函数,因此当我点击关闭按钮(X)时,closeEvent(QCloseEvent *event)将隐藏。我在网上进行了一些研究,试图在点击QMessageBox按钮时隐藏QMessageBox,有些人说我应该覆盖OK功能,但我没有让它工作。
所以这是我想要做的最小例子:

QDialog::reject()

希望有人能为我提供一种方法吗?感谢。

编辑:我为什么要这样做?
我有一个应用程序大多在后台运行,所以大多数时候,窗口都隐藏了。当我从托盘图标菜单中单击检查更新操作时,将弹出MessageBox::MessageBox(QWidget *parent) : QMessageBox(parent) { this->setStandardButtons(QMessageBox::Ok); int ret = this->exec(); switch (ret) { case QMessageBox::Ok: //confusing part break; default: break; } } void MessageBox::closeEvent(QCloseEvent *event) { event->ignore(); this->hide(); } void MessageBox::reject() { //I am confused about how to do this part to hide the message box when the OK button is clicked. } 以显示是否有可用的更新。然后,如果我点击QMesssageBox上的按钮,该应用程序将退出。但我也注意到,如果我有一个活动窗口,当我点击QMessageBox上的按钮时,应用程序将不会退出。所以我只想在没有其他活动窗口的情况下单击QMessageBox上的按钮后停止我的应用程序退出。希望我能清楚地解释自己。

0 个答案:

没有答案