我有一个QWidget子类的指针:
QWidget * form;
接下来,我将子类的实例作为QMdiSubWindow的内部小部件:
QMdiSubWindow * w = mdiArea->addSubWindow(form);
在关闭MDI子窗口form
时如何确保删除对象w
?
答案 0 :(得分:1)
根据documentation,必须在子窗口上设置Qt::WA_DeleteOnClose
标志,以便在关闭后将其自动删除。
回到您的实际问题:当您致电addSubWindow
时,它会在内部致电setWidget
。在该步骤之后,传递的小部件的父级是在其上进行调用的QMdiSubWindow
对象。因此,在删除该对象后,它也将删除其所有子元素,包括所说的小部件,就像几乎所有忠实的Qt对象所做的一样。