Когда вы вызываете addWidget
для макета или сгруппированного виджета, право собственности на виджет передается на макет / скомпонованный виджет.Все это означает, что если макет / сложенный виджет будет удален, то все виджеты, которые были добавлены в него, также будут удалены.
Совершенно нормально удалить виджет, когда вы закончите с ним независимо от того,кто владеет им .Владение - это просто удобный способ очистки памяти иерархии объектов.Это никоим образом не говорит о том, что объект, которому он принадлежит, должен удалить его.Если бы это было так, то после того, как вы добавили все свои виджеты, вы сможете избавиться от них всех или вообще ни одного!
Если вы не хотите, чтобы ваш виджет был удален, когда макет / сложенвиджет будет удален, тогда вы бы позвонили removeWidget
.Обратите внимание, что неясно, куда на самом деле переходит владение виджетом.Простое тестовое приложение.Я только что написал, что removeWidget
даже не передал владение от QStackedWidget
вообще!
Итак, чтобы ответить на ваш вопрос, Qt правильно удалит виджет из макета / сложенного виджета, если вы удалитеЭто.Кроме того, это правильный способ удаления виджета, если он больше не принадлежит макету / сложенному виджету.