我想在这里实现的是,当我点击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
上的按钮后停止我的应用程序退出。希望我能清楚地解释自己。