2

他の qwidget (qwidget2 と呼びます) のレイアウト内に qwidget (qwidget1 と呼びます) があり、qwidget2 のレイアウトにあるものをすべて削除したい: レイアウトをクリアしたいので、もう何もありません..これまでにできることは、次のようにしてqwidget2を完全に削除することです。

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

しかし、それはqwidget2自体を削除します..それは私が望むものではありません. レイアウト内にあるアイテムを削除するのを手伝ってください。

4

1 に答える 1

2

レイアウト内のアイテム内をループし、レイアウトからアイテムを削除してから、アイテムを削除します。

void QCell::deleteMyChildren() {
    while (count() > 0) {
        QLayoutItem * item = takeAt(0);
        delete item;
    }
}
于 2013-01-29T16:31:33.347 に答える