首页| 论坛| 消息

标题:Qt为什么多个顶层窗口关闭其一可能导致程序结束?
作者:amelie
日期:2021-10-24 19:51
内容:

这是写一个小游戏中出现的问题,游戏有3个顶层窗口,分别为:窗口1、窗口2、窗口3。

同一时间只能有一个窗口显示,我的预计计划是窗口1控制着程序关闭(窗口1关闭程序就关闭)。可问题是窗口2或窗口3单独出现的时候,如果关闭了它们中的一个,整个程序也随之关闭了,请问这是什么原因导致的?

我复现了一下情景:

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w1;
Widget w2;
Widget w3;
#if 0
w1.hide();
w2.hide();
w3.hide();
// w2.close() // 这里关闭w2并不会导致程序结束
#else
w1.hide();
w2.show(); // 点击叉为什么程序就结束了?明明还有2个窗口没关闭才对啊?
w3.hide();
#endif
return a.exec();
}


#1 [maxlogo 10-24 20:09]
setQuitOnLastWindowClosed
#2 回 maxlogo 的帖子 [amelie 10-24 22:22]
maxlogo:setQuitOnLastWindowClosed (2021-10-24 20:09) 
谢谢,困扰我多天的问题解决了
Qt 的默认策略是显示的最后一个窗口关闭,整个程序就关闭吗?

回复 发表
主题 版块