Qt close()函数执行后 窗体内容消失窗体边框还在问题
如下图所示:
- 在同一窗体对象多次实例化 show出界面ui 然后线程下指定窗体id关闭开启 和同时关闭同时开启
- 当我在同一回调函数中去识别窗体进行关闭的时候出现空白窗体的问题
解决办法
用QObject *parent将多个窗体依次指定成父类顶级窗体 这样,当父组件delete时,Qt可以保证所有子组件(也就是parent指针指向这个组件的所有组件)都会被正确的delete掉 当然用这个来避免ui的内存泄露也是可以的
原本直接:
this->close();
现在:
if (QMdiSubWindow* psw = qobject_cast<QMdiSubWindow*>(this->parent()) ) {
psw->close();
} else {
this->close();
}