1、QT的窗口有以下几种状态:
**删除:**是指窗口被销毁,也就是说窗口不存在了。比如窗口使用new创建的,则表示窗口被delete了,被销毁的窗口不能被再次使用,否则会发生内存错误。
**隐藏:**是指窗口不可见,但窗口并未被销毁,使用show()等函数,可以让该窗口再次可见。
**关闭:**是指窗口不可见,但窗口有可能是被删除了,也有可能是被隐藏了,这要视情况而定。
窗口被删除时,会同时删除其子对象,而隐藏则不会。
2、关闭窗口和终止程序
一个(应用)程序通常拥有多个窗口,关闭(或删除)一个窗口,并不一定会使程序终止,Qt中关闭窗口使用QWidget::close()槽函数,终止程序使用的是QCoreApplication::quit()静态槽函数
3、相关属性
①、Qt::WA_DeleteOnClose属性:表示当部件接受到QCloseEvent事件时,是否让Qt删除部件。若该属性为true,则删除部件,否则部件只是隐藏。注意:设置了该属性的部件需要使用new创建,否则会产生内存错误。
②、Qt::WA_QuitOnClose属性:表示当拥有该属性的最后一个部件接受到QCloseEvent事件时,让Qt终止应用程序。默认情况下,所有Qt::Window类型的部件都具有该属性。
QT的相关属性可以用setAttribute进行设置
如果想关闭窗口时,不让整个窗口结束运行,需要设置Qt::WA_QuitOnClose属性。