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().
| Constante | Valor | Descripción |
|---|---|---|
QGraphicsItemGroup::Type | 10 | Un 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.