您的位置:首页 > 编程语言 > Qt开发

Qt界面关闭主窗口,若其Qdialog弹框没有关闭,程序无法退出

2018-03-14 16:46 1136 查看
Qt界面关闭主窗口,若其Qdialog弹框没有关闭,程序无法退出

需要在主窗口设置属性:Qt::WA_QuitOnClose

将主窗口属性设置为:
fm.setAttribute(Qt::WA_QuitOnClose,true);Qt::WA_QuitOnClose属性是使窗口如果是最后一个关闭的时候触发事件lastWindowClosed();

然后主程序收到事件退出
a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
现在问题是自己定义的子窗口打开的时候,它们默认Qt::WA_QuitOnClose也是true,所以如果主窗口关闭的时候有别的窗口开着,(除了一些暂时性的窗口——如启动界面、工具窗口、弹出菜单)程序还是不会退出,而是等到最后一个窗口关闭之后才退出。

所以现在要把别的窗口的Qt::WA_QuitOnClose设为false。如Qdialog的弹出框。
XX.setAttribute(Qt::WA_QuitOnClose,false);
这样关闭主窗口的时候,主程序就会退出,其他窗口也会关闭。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt 窗口关闭
相关文章推荐