ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

c – 如何在隐藏主窗口时正确关闭QDialog?

2019-09-02 22:06:28  阅读:151  来源: 互联网

标签:c qt


我有某种困境.

我正在使用:

> MSVS 2008
> Qt 4.7.3(使用Qt VS插件1.1.9)

我写了一个小Qt应用程序,基于QMainWindow类,其中还存在设置对话框(QDialog).每个在GUI模式下都能正常工作.之后我开始改变我的项目,使其仅在托盘中可见.只需在main.cpp show()方法中注释,如下所示:

MainWindow w;
//w.show();

return app.exec();

但是从托盘中,我需要启动设置对话框,该对话框在mainwindow.h / .cpp文件中实现.我添加到托盘菜单操作(QAction),它启动该设置对话框.这出现了意想不到的问题:当我尝试用[X]关闭按钮(在右上角)关闭此设置对话框时,我的应用程序已关闭!

这是动作槽:

void MainWindow::onOpenSettingsDlgClicked()
{
     SettingsDlg dlg( this );
     dlg.exec();
}

我试图为设置对话框类重新实现虚拟reject()方法,并且只设置hide()函数,但该解决方案没有帮助.

我做错了什么?

谢谢!

解决方法:

您应该关闭quitOnLastWindowClosed属性,该属性默认打开,如文档中所定义(http://doc.qt.nokia.com/latest/qapplication.html#quitOnLastWindowClosed-prop)

这就是说,您必须自己处理QApplication的终止,也可以在托盘菜单中输入[quit]条目.

标签:c,qt
来源: https://codeday.me/bug/20190902/1793541.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有