我们知道c++内存管理的一个规则:new出来的对象,一定要delete。
我们实现一个弹窗的时候,有时候继承widget,有时候继承dialog。不管哪种,窗体调用show方法后,不可能直接delete。
当然,new该窗体的时候,指定了父对象,就可以不用显示调用delete,它会随着父对象的销毁而销毁。
那这时候,关闭弹窗的操作,就仅仅是隐藏了。为了实现真正的delete。我们需要设施窗口的一个属性 DeleteOnClose,具体方法如下:
setAttribute(Qt::WA_DeleteOnClose, true);
在C++的Qt框架中,管理内存是非常重要的。通常,使用`new`创建的对象需要对应地使用`delete`释放。对于窗口类如Widget或Dialog,直接关闭并不会自动删除对象。如果指定了父对象,窗口会在父对象销毁时被销毁。为实现窗口关闭即删除,可以设置Qt的WA_DeleteOnClose属性,确保窗口关闭时自动删除自身。
2337

被折叠的 条评论
为什么被折叠?



