En esta página

QGraphicsItemGroup Class

La clase QGraphicsItemGroup proporciona un contenedor que trata un grupo de elementos como un único elemento. Más...

Cabecera: #include <QGraphicsItemGroup>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Hereda: QGraphicsItem

Tipos Públicos

enum { Type }

Funciones Públicas

QGraphicsItemGroup(QGraphicsItem *parent = nullptr)
virtual ~QGraphicsItemGroup()
void addToGroup(QGraphicsItem *item)
void removeFromGroup(QGraphicsItem *item)

Funciones Públicas Reimplementadas

virtual QRectF boundingRect() const override
virtual bool isObscuredBy(const QGraphicsItem *item) const override
virtual QPainterPath opaqueArea() const override
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
virtual int type() const override

Descripción Detallada

Un QGraphicsItemGroup es un tipo especial de ítem compuesto que se trata a sí mismo y a todos sus hijos como un solo ítem (es decir, todos los eventos y geometrías de todos los hijos se fusionan). Es habitual utilizar grupos de elementos en herramientas de presentación, cuando el usuario desea agrupar varios elementos pequeños en uno grande para simplificar el movimiento y la copia de elementos.

Si lo único que quieres es almacenar elementos dentro de otros elementos, puedes utilizar directamente cualquier QGraphicsItem pasando un padre adecuado a setParentItem().

La funcion boundingRect() de QGraphicsItemGroup devuelve el rectangulo delimitador de todos los items del grupo. QGraphicsItemGroup ignora la bandera ItemIgnoresTransformations en sus hijos (es decir, con respecto a la geometría del elemento del grupo, los hijos son tratados como si fueran transformables).

Hay dos maneras de construir un grupo de elementos. La más sencilla y común es pasar una lista de elementos (por ejemplo, todos los elementos seleccionados) a QGraphicsScene::createItemGroup(), que devuelve un nuevo elemento QGraphicsItemGroup. El otro método es construir manualmente un elemento QGraphicsItemGroup, añadirlo a la escena llamando a QGraphicsScene::addItem(), y luego añadir elementos al grupo manualmente, uno a uno llamando a addToGroup(). Para desmontar ("desagrupar") un grupo de elementos, puedes llamar a QGraphicsScene::destroyItemGroup(), o puedes eliminar manualmente todos los elementos del grupo llamando a removeFromGroup().

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

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

La operación de añadir y eliminar elementos conserva la posición relativa a la escena y la transformación de los elementos, a diferencia de la llamada a setParentItem(), en la que sólo se conservan la posición relativa al padre y la transformación del elemento hijo.

La función addtoGroup() vuelve a colocar el elemento de destino en este grupo de elementos, manteniendo intactas la posición y la transformación del elemento en relación con la escena. Visualmente, esto significa que los elementos añadidos mediante addToGroup() permanecerán completamente inalterados como resultado de esta operación, independientemente de la posición o transformación actual del elemento o del grupo; aunque es probable que la posición y la matriz del elemento cambien.

La función removeFromGroup() tiene una semántica similar a setParentItem(); devuelve el elemento al elemento padre del grupo de elementos. Al igual que con addToGroup(), la posición relativa a la escena y la transformación del elemento permanecen intactas.

Véase también QGraphicsItem y Graphics View Framework.

Documentación de tipos de miembros

[anonymous] enum

El valor devuelto por la función virtual type().

ConstanteValorDescripción
QGraphicsItemGroup::Type10Un grupo de elementos gráficos

Documentación de la función miembro

[explicit] QGraphicsItemGroup::QGraphicsItemGroup(QGraphicsItem *parent = nullptr)

Construye un QGraphicsItemGroup. parent es pasado al constructor de QGraphicsItem.

Ver también QGraphicsScene::addItem().

[virtual noexcept] QGraphicsItemGroup::~QGraphicsItemGroup()

Destruye el QGraphicsItemGroup.

void QGraphicsItemGroup::addToGroup(QGraphicsItem *item)

Añade el item dado y los ítems hijos del ítem a este grupo de ítems. El ítem y los ítems hijos serán reasignados a este grupo, pero su posición y transformación relativa a la escena permanecerá intacta.

Véase también removeFromGroup() y QGraphicsScene::createItemGroup().

[override virtual] QRectF QGraphicsItemGroup::boundingRect() const

Reimplementa: QGraphicsItem::boundingRect() const.

Devuelve el rectángulo delimitador de este elemento de grupo y de todos sus hijos.

[override virtual] bool QGraphicsItemGroup::isObscuredBy(const QGraphicsItem *item) const

Reimplementa: QGraphicsItem::isObscuredBy(const QGraphicsItem *item) const.

[override virtual] QPainterPath QGraphicsItemGroup::opaqueArea() const

Reimplementa: QGraphicsItem::opaqueArea() const.

[override virtual] void QGraphicsItemGroup::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)

Reimplementa: QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget).

void QGraphicsItemGroup::removeFromGroup(QGraphicsItem *item)

Elimina el item especificado de este grupo. El elemento será reasignado al elemento padre de este grupo, o a 0 si este grupo no tiene padre. Su posición y transformación relativas a la escena permanecerán intactas.

Véase también addToGroup() y QGraphicsScene::destroyItemGroup().

[override virtual] int QGraphicsItemGroup::type() const

Reimplementa: QGraphicsItem::type() const.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.