QGraphicsItemGroup 类

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

头文件 #include <QGraphicsItemGroup>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承 QGraphicsItem

公共类型

enum匿名 { 类型 }

公共函数

QGraphicsItemGroup(QGraphicsItem *parent = nullptr)
~QGraphicsItemGroup()
voidaddToGroup(QGraphicsItem *item)
voidremoveFromGroup(QGraphicsItem *item)

重实现的公共函数

虚拟boundingRect() const override
虚拟isObscuredBy(const QGraphicsItem *item) const override
虚拟opaqueArea() const override
虚拟paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
虚拟type() const override

详细描述

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

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

QGraphicsItemGroup 的boundingRect() 函数返回项组中所有项的边界矩形。QGraphicsItemGroup 忽略其子项的 ItemIgnoresTransformations 标志(即,就组项的几何形状而言,子项被视为可变换的)。

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

// Group all selected items together
QGraphicsItemGroup *group = scene->createItemGroup(scene->selecteditems());

// Destroy the group, and delete the group item
scene->destroyItemGroup(group);

添加和删除项目的操作保留了项目的场景相关位置和变换,与调用setParentItem()相比,其中仅保留子项目的父项相对位置和变换。

addtoGroup()函数将目标项重新父化到该项目组,保持项在场景中的位置和变换保持不变。从视觉上看,这意味着通过addToGroup()添加的项将完全不变,无论项或组当前的位或变换如何;虽然项的位置和矩阵可能发生变化。

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

另请参阅QGraphicsItemGraphics View框架

成员类型文档

枚举QGraphicsItemGroup::匿名

虚函数type()返回的值。

常量描述
QGraphicsItemGroup::Type10一个图形项组

成员函数文档

[明确的] QGraphicsItemGroup::QGraphicsItemGroup(QGraphicsItem *parent = nullptr)

构造QGraphicsItemGroup。将parent传递给QGraphicsItem'的构造函数。

另请参阅QGraphicsScene::addItem()。

[虚拟无异常] QGraphicsItemGroup::~QGraphicsItemGroup()

销毁QGraphicsItemGroup

void QGraphicsItemGroup::addToGroup(QGraphicsItem *item)

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

另请参阅removeFromGroup()和QGraphicsScene::createItemGroup()。

[重载虚拟] QRectF QGraphicsItemGroup::boundingRect() const

重新实现:QGraphicsItem::boundingRect() const

返回组项、及其所有子项的外接矩形。

[重写虚函数] bool QGraphicsItemGroup::isObscuredBy(const QGraphicsItem *item) const

重新实现: QGraphicsItem::isObscuredBy(const QGraphicsItem *item) const.

[重写虚函数] QPainterPath QGraphicsItemGroup::opaqueArea() const

重新实现: QGraphicsItem::opaqueArea() const.

[重写虚函数] void QGraphicsItemGroup::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)

重新实现: QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget).

void QGraphicsItemGroup::removeFromGroup(QGraphicsItem *item)

从该组中移除指定的 item。项目将被重新设置为该组父项,或者在没有父项的情况下设置为0。其相对于场景的位置和变换将保持不变。

另请参阅addToGroup() 及 QGraphicsScene::destroyItemGroup().

[重写虚函数] int QGraphicsItemGroup::type() const

重新实现: QGraphicsItem::type() const.

© 2024 The Qt Company Ltd. 本文档贡献的版权属于各自的所有者。本文档受自由软件基金会发布的 GNU自由文档许可证版本1.3 的条款约束。Qt及其相关标志是芬兰以及/或世界各国The Qt Company Ltd的商标。所有其他商标均为各自所有者的财产。