QT - изменяет расположение QWidget

Давайте полагать, что у нас есть a QWidget и a QLayout именованный general_layout это содержит другие виджеты и разметки. general_layout установлен как QWidget расположение как это:

setLayout(general_layout)

Теперь я должен для изменения содержания QWidget. Как я могу сделать это? Я попытался удалить и создать новое расположение для QWidget и что новый набор расположения как расположение QWidget, но не мог завершить мои намерения успешно.

Это - мой код:

delete general_layout;
general_layout = new QHBoxLayout;
general_layout->addLayout(some_layout);
myQWidget->setLayout(general_layout);
7
задан msrd0 28 September 2014 в 20:08
поделиться

1 ответ

Проблема в том, что виджеты макета не уничтожаются при удалении макета. В результате все дочерние виджеты myQWidget все еще присутствуют, даже без макета.

Решение простое: добавьте

qDeleteAll(myQWidget->children());

после

delete general_layout;
14
ответ дан 6 December 2019 в 15:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: