Как удалить QWidget после закрытия QMdiSubWindow - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть указатель на подкласс QWidget:

QWidget * form;

Далее я помещаю экземпляр подкласса как внутренний виджет QMdiSubWindow:

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

Как убедиться, что объект form удален, когда подокно MDI w закрыто?

1 Ответ

0 голосов
/ 03 сентября 2018

Согласно документации необходимо установить флаг Qt::WA_DeleteOnClose в подокне, чтобы он автоматически удалялся после закрытия.

Возвращаясь к вашему актуальному вопросу: когда вы звоните addSubWindow, он набирает setWidget внутри страны. После этого шага родительским элементом переданного виджета является объект QMdiSubWindow, для которого был сделан вызов. Следовательно, после того, как этот объект будет удален, он также удалит все его дочерние элементы, включая указанный виджет, как [почти] любой объект Qt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...