一、描述
1、QGraphicsItemGroup 是一种特殊类型的复合项,它将自身及其所有子项视为一个项(即所有子项的所有事件和几何图形都合并在一起)。当想要将几个较小的图形项组合成一个大图形项以简化项目的移动和复制时可以使用项目组。
2、如果只想将图形项存储在其他图形项中,应该通过将合适的父项传递给 setParentItem() 来直接使用任何 QGraphicsItem而不是使用QGraphicsItemGroup。
3、QGraphicsItemGroup 的 boundingRect() 函数返回项组中所有项的边界矩形。 QGraphicsItemGroup 忽略其子项上的 ItemIgnoresTransformations 标志(图形项将忽略继承的转换)。
4、有两种方法可以构建项目组:
- 将项目列表传递给 QGraphicsScene::createItemGroup((const QList<QGraphicsItem *> &items),它返回一个新的 QGraphicsItemGroup 图形项。
- 构造一个 QGraphicsItemGroup 项,调用 QGraphicsScene::addItem() 将其添加到场景中,然后通过调用 addToGroup() 将项目添加到组中。
5、要拆除(“取消分组”)一个项目组,可以调用 QGraphicsScene::destroyItemGroup(),或者调用 removeFromGroup() 从组中删除所有项目。
6、添加和删除图形项到项目组的操作不会改变图形项相对于场景的位置和变换。
二、实用成员函数
1、void addToGroup(QGraphicsItem *item)
将给定的图形项及其子项添加到项目组。图形项及其子项相对于场景的位置和变换将保持不变。item的父项被设为当前项目组。
2、void removeFromGroup(QGraphicsItem *item)
从当前项目组中删除指定的图形项。该图形项的父项设为当前项目组的父项(如果当前项目组有父项的话)。图形项相对于场景的位置和变换将保持不变。