3

メソッドQSpacerItemを使用してレイアウトに を追加しました。addStretch()

layout->addStretch(1);

削除したいのですが、参照がありませんでした。

QLayoutItemすべてを参照して削除のみを行うにはどうすればよいQSpacerItemですか?

4

1 に答える 1

8

私は個人的にこれを書きます:

for (int i = 0; i < layout->count(); ++i) {
    QLayoutItem *layoutItem = layout->itemAt(i);
    if (layoutItem->spacerItem()) {
        layout->removeItem(layoutItem);
        // You could also use: layout->takeAt(i);
        delete layoutItem;
        --i;
    }
}

したがって、コードで明確にされていない場合、ロジックは次のようになります。

  • レイアウトのすべてのアイテムを検索します。

  • スペーサー品かどうか確認してください。

  • ある場合は、それを削除します。

于 2014-05-04T21:18:53.773 に答える