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