Странно.Насколько я понимаю, добавление виджетов с помощью addWidget
передает право собственности на макет, поэтому вызов children()
должен работать.
Однако, в качестве альтернативы, вы можете перебирать элементы макета с помощью count()
и itemAt(int)
предоставить QLayoutItem
для removeItem(QLayoutItem*)
.
Редактировать:
Я только что попробовал addWidget
с прямым тестовым приложением C ++.и он не передает владение QObject
макету, поэтому children()
действительно пустой список.В документах четко сказано, что право собственности передается, хотя ...
Редактировать 2:
Хорошо, похоже, что оно передает право собственностивиджет с таким макетом (который не , как сказано в документации).Это делает элементы в макете родственными элементами самого макета в иерархии QObject
!Поэтому проще придерживаться count
и itemAt
.