Полагаю, здесь есть проблема с использованием deleteLater
. Дочерние виджеты будут удалены только после того, как вы вернетесь к главному циклу событий, и это произойдет только после того, как restore()
завершится (т.е. после того, как вы позвоните adjustSize
).
Вы пытались удалить дочерние виджеты из макета, в котором они находятся, перед вызовом deleteLater()
?
foreach(RuntimeWidget* child, findChildren< RuntimeWidget* >()) {
vbxlytDialogue->removeWidget(child);
child->deleteLater();
}
(Или что-то в этом роде - я просто догадываюсь о типе vbxlytDialogue
.)