关闭QMdiSubWindow后如何删除QWidget

时间:2018-09-03 07:07:11

标签: c++ qt

我有一个QWidget子类的指针:

QWidget * form;

接下来,我将子类的实例作为QMdiSubWindow的内部小部件:

QMdiSubWindow * w = mdiArea->addSubWindow(form);

在关闭MDI子窗口form时如何确保删除对象w

1 个答案:

答案 0 :(得分:1)

根据documentation,必须在子窗口上设置Qt::WA_DeleteOnClose标志,以便在关闭后将其自动删除。

回到您的实际问题:当您致电addSubWindow时,它会在内部致电setWidget。在该步骤之后,传递的小部件的父级是在其上进行调用的QMdiSubWindow对象。因此,在删除该对象后,它也将删除其所有子元素,包括所说的小部件,就像几乎所有忠实的Qt对象所做的一样。