2

項目の順序が非常に重要な QGraphicsScene があります。items()アイテム リスト (つまり、が呼び出されたときに返されるリスト) の特定のインデックスにアイテムを追加したいと考えています。

QList にはremoveAt()andinsert()関数があることは知っていますが、QGraphicsScene にはaddItemAt()これらすべての行のようなものがありますか? そうでない場合、誰かがこれを行う良い方法を知っていますか?

4

1 に答える 1

1

挿入時に順序を指定するオプションはありません。デフォルトでは、追加された最新のアイテムが一番上に表示されます。

兄弟アイテム (同じ親を持つアイテム) がシーンに追加された後にそれらの重なり順を決定するには、2 つのオプションがあります。

  1. Z 値を指定します。

  2. 挿入順序を変更します (同じ Z 値を持つアイテムに適用されます)。

Z 値で配置したい場合は、アイテムに特定の Z 値を割り当て、必要に応じてQGraphicsItem::setZValue()を使用して新しいアイテムを追加するときに再割り当てする必要があります。

または、 QGraphicsItem::stackBefore()を呼び出してアイテムの挿入順序を変更できます。

于 2012-06-14T04:53:44.697 に答える