PySide6.QtWidgets.QGraphicsItemGroup

class QGraphicsItemGroup

QGraphicsItemGroup 类提供了一个容器,将一组项目视为单个项目。更多

PySide6.QtWidgets.QGraphicsItemGroup 的继承图

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

QGraphicsItemGroup 是一种特殊类型的复合项,它将自身及其所有子项视为一个项(即,所有子项的所有事件和几何形状都合并在一起)。在演示工具中,当用户希望将几个较小的项组合成一个较大的项以简化项的移动和复制时,通常使用项组。

如果你只想在其他项目内存储项目,你可以直接使用任何QGraphicsItem,通过传递一个合适的父项给setParentItem()

boundingRect() 函数属于 QGraphicsItemGroup,它返回组内所有项目的边界矩形。QGraphicsItemGroup 忽略其子项的 ItemIgnoresTransformations 标志(即,在组项的几何形状方面,子项被视为可变换的)。

有两种方法可以构造一个项目组。最简单和最常见的方法是传递一个项目列表(例如,所有选定的项目)到createItemGroup(),它会返回一个新的QGraphicsItemGroup项目。另一种方法是手动构造一个QGraphicsItemGroup项目,通过调用addItem()将其添加到场景中,然后通过调用addToGroup()手动将项目逐个添加到组中。要解散(“取消分组”)一个项目组,你可以调用destroyItemGroup(),或者通过调用removeFromGroup()手动从组中移除所有项目。

# Group all selected items together
group = scene.createItemGroup(scene.selecteditems())
# Destroy the group, and delete the group item
scene.destroyItemGroup(group)

添加和删除项目的操作会保留项目的场景相对位置和变换,这与调用setParentItem()不同,后者仅保留子项目的父相对位置和变换。

addtoGroup() 函数将目标项重新父级化到此项目组,保持项目相对于场景的位置和变换不变。从视觉上看,这意味着通过 addToGroup() 添加的项目将在此操作后完全保持不变,无论项目或组的当前位置或变换如何;尽管项目的位置和矩阵可能会发生变化。

removeFromGroup() 函数与 setParentItem() 具有相似的语义;它将项目重新设置为项目组的父项目。与 addToGroup() 一样,项目的场景相对位置和变换保持不变。

__init__([parent=None])
Parameters:

父级QGraphicsItem

构造一个QGraphicsItemGroupparent被传递给QGraphicsItem的构造函数。

另请参阅

addItem()

addToGroup(item)
Parameters:

项目QGraphicsItem

将给定的item及其子项添加到此项目组中。该项目及其子项将被重新分配到该组,但其相对于场景的位置和变换将保持不变。

removeFromGroup(item)
Parameters:

项目QGraphicsItem

从该组中移除指定的item。该项目将被重新分配到该组的父项目,如果该组没有父项目,则分配到0。其相对于场景的位置和变换将保持不变。