这是写一个小游戏中出现的问题,游戏有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();
}
main
函数中执行下面这条语句即可: