QVBoxLayout
実行時に作成したQWidget
オブジェクトを動的に入力します。実行時にそれらも削除したいのですが、どうすればよいですか?
ウィジェットを 1 つずつ削除できます。
void QLayout::removeWidget(QWidget * widget)
どういうわけかレイアウトを繰り返すことはできますか?
QVBoxLayout
実行時に作成したQWidget
オブジェクトを動的に入力します。実行時にそれらも削除したいのですが、どうすればよいですか?
ウィジェットを 1 つずつ削除できます。
void QLayout::removeWidget(QWidget * widget)
どういうわけかレイアウトを繰り返すことはできますか?
格納されたウィジェットのcount
数を返すitemAt()
メソッドと、インデックスを指定すると、相対的な格納されたウィジェットへのポインターを返すメソッドがあります。すべてのポインタを取得してから削除できます。最初にすべてのポインターを取得する必要があります。これは、カウント中にポインターを 1 つ削除すると、格納されているウィジェットの数が反復中に変化するためです。
itemAt()
ウィジェット自体を取得するメソッドを使用して取得しますQLayoutItem
。widget
while (layout->count() != 0) {
QLayoutItem *item = layout->itemAt(0);
layout->removeWidget(item->widget());
}