Qt 5.1 - QMessageBox Bug?如果在隐藏QDialog时调用QMessageBox,则程序退出(0)

时间:2013-12-04 08:41:59

标签: c++ qt

我似乎发现了Qt 5.1的烦人问题

比方说,你有一个系统托盘图标(QSystemTrayIcon),你隐藏你的表格(QDialog)

So: this->hide();

然后在隐藏表单时,您的应用会显示一个消息框:

QMessageBox::information(0, "Test", "Test");

一旦用户点击确定关闭对话框,程序将以退出代码0退出。因此它不会崩溃,但它会礼貌地退出。

我所知道的唯一解决方法是在Windows上使用WIN32 API和MessageBox函数。这不是我想要做的。

这是一个错误吗?

1 个答案:

答案 0 :(得分:6)

默认情况下,Qt应用程序在最后一个窗口关闭时关闭(在您的情况下,当您关闭QMessageBox时)。

您可以添加此代码以保持应用程序正常运行:

qApp()->setQuitOnLastWindowClosed(false);