удалить qwidget из макета QT

У меня есть qwidget (назовем его qwidget1) внутри макета другого qwidget (назовем его qwidget2), я хочу удалить все, что находится в макете qwidget2: я хочу очистить макет, поэтому в нем больше ничего нет ... пока я могу полностью удалить qwidget2, выполнив:

void QCell::deleteMyChildren(){
   delete this;
}

но он удаляет сам qwidget2 .. это не то, что я хочу. Пожалуйста, помогите мне удалить элементы, которые находятся внутри макета.


person Ben    schedule 29.01.2013    source источник
comment
Просто чтобы уточнить, поскольку у меня похожая проблема, qwidget2 представлен QCell?   -  person thnkwthprtls    schedule 25.03.2014


Ответы (1)


просто зациклируйте элементы в макете и удалите элемент из макета, затем удалите элемент:

void QCell::deleteMyChildren() {
    while (count() > 0) {
        QLayoutItem * item = takeAt(0);
        delete item;
    }
}
person TheBootroo    schedule 29.01.2013