QGraphicsScene 类似 removeAt() 和 insert() 函数

QGraphicsScene analogous removeAt() and insert() functions?

本文关键字:insert 函数 类似 QGraphicsScene removeAt      更新时间:2023-10-16

我有一个QGraphicsScene,其中项目的顺序非常重要。我想在项目列表中的某个索引处添加项目(即调用items()时返回的列表)。

我知道QList具有removeAt()insert()功能,但是QGraphicsScene是否有类似的东西,例如addItemAt()或所有这些行?如果没有,有谁知道解决这个问题的好方法?

没有在插入时指定顺序的选项。默认情况下,最近添加的项目将显示在顶部。

有两个选项可用于确定将同级项目(具有相同父项的项)添加到场景后的堆叠顺序。

  1. 指定 Z 值。

  2. 更改广告顺序(适用于具有相同 Z 值的商品)。

如果您希望按 Z 值排列,则需要为项目分配特定的 Z 值,并在使用 QGraphicsItem::setZValue() 添加新项目时根据需要重新分配它们。

或者,您可以通过调用 QGraphicsItem::stackBefore() 来更改项的插入顺序。