Sur cette page

QGraphicsItemGroup Class

La classe `QGraphicsItemGroup` fournit un conteneur qui traite un groupe d'éléments comme un seul élément. En savoir plus...

En-tête : #include <QGraphicsItemGroup>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Hérite de : QGraphicsItem

Types publics

enum { Type }

Fonctions publiques

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

Fonctions publiques réimplémentées

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

Description détaillée

Un QGraphicsItemGroup est un type particulier d’élément composite qui se considère lui-même, ainsi que tous ses enfants, comme un seul élément (c’est-à-dire que tous les événements et toutes les géométries de tous les enfants sont fusionnés). Il est courant d’utiliser des groupes d’éléments dans les outils de présentation, lorsque l’utilisateur souhaite regrouper plusieurs petits éléments en un seul grand élément afin de simplifier le déplacement et la copie des éléments.

Si vous souhaitez simplement stocker des éléments à l’intérieur d’autres éléments, vous pouvez utiliser n’importe quel QGraphicsItem directement en passant un parent approprié à la fonction setParentItem().

La fonction boundingRect() de QGraphicsItemGroup renvoie le rectangle englobant de tous les éléments du groupe d’éléments. QGraphicsItemGroup ignore l’indicateur ItemIgnoresTransformations sur ses enfants (c’est-à-dire que, par rapport à la géométrie de l’élément du groupe, les enfants sont traités comme s’ils étaient transformables).

Il existe deux façons de créer un groupe d’éléments. L’approche la plus simple et la plus courante consiste à passer une liste d’éléments (par exemple, tous les éléments sélectionnés) à la fonction QGraphicsScene::createItemGroup(), qui renvoie un nouvel élément de type QGraphicsItemGroup. L'autre approche consiste à créer manuellement un élément QGraphicsItemGroup, à l'ajouter à la scène en appelant ` QGraphicsScene::addItem()` (), puis à ajouter manuellement des éléments au groupe, un par un, en appelant ` addToGroup()` (). Pour démanteler (« dégrouper ») un groupe d’éléments, vous pouvez soit appeler ` QGraphicsScene::destroyItemGroup()`, soit supprimer manuellement tous les éléments du groupe en appelant ` removeFromGroup()`.

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

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

Les opérations d’ajout et de suppression d’éléments préservent la position et la transformation de ces éléments par rapport à la scène, contrairement à l’appel de la fonction ` setParentItem()`, qui ne conserve que la position et la transformation de l’élément enfant par rapport à son parent.

La fonction addtoGroup() réaffecte l’élément cible à ce groupe d’éléments, en conservant intactes la position et la transformation de l’élément par rapport à la scène. Visuellement, cela signifie que les éléments ajoutés via addToGroup() resteront totalement inchangés à la suite de cette opération, quelle que soit la position ou la transformation actuelle de l’élément ou du groupe ; bien que la position et la matrice de l’élément soient susceptibles de changer.

La fonction ` removeFromGroup()` présente une sémantique similaire à celle de ` setParentItem()` ; elle réaffecte l'élément à l'élément parent du groupe d'éléments. Comme avec ` addToGroup()`, la position et la transformation de l'élément par rapport à la scène restent inchangées.

Voir également QGraphicsItem et le cadre de travail de la vue graphique.

Documentation sur les types de membres

[anonymous] enum

Valeur renvoyée par la fonction virtuelle ` type()`.

ConstanteValeurDescription
QGraphicsItemGroup::Type10Un groupe d'éléments graphiques

Documentation sur les fonctions membres

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

Crée un `QGraphicsItemGroup`. L'objet ` parent ` est transmis au constructeur de ` QGraphicsItem`.

Voir également QGraphicsScene::addItem().

[virtual noexcept] QGraphicsItemGroup::~QGraphicsItemGroup()

Supprime l'QGraphicsItemGroup.

void QGraphicsItemGroup::addToGroup(QGraphicsItem *item)

Ajoute l'item e spécifiée et les éléments enfants de l'élément à ce groupe d'éléments. L'élément et ses éléments enfants seront rattachés à ce groupe, mais leur position et leur transformation par rapport à la scène resteront inchangées.

Voir également removeFromGroup() et QGraphicsScene::createItemGroup().

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

Réimplémente : ` QGraphicsItem::boundingRect()` const.

Renvoie le rectangle de délimitation de cet élément de groupe et de tous ses enfants.

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

Réimplémente : QGraphicsItem::isObscuredBy(const QGraphicsItem *item) const.

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

Réimplémente : QGraphicsItem::opaqueArea() const.

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

Réimplémente : QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget).

void QGraphicsItemGroup::removeFromGroup(QGraphicsItem *item)

Supprime l'item spécifié de ce groupe. L'élément sera rattaché à l'élément parent de ce groupe, ou à 0 si ce groupe n'a pas de parent. Sa position et sa transformation par rapport à la scène resteront inchangées.

Voir également ` addToGroup()` et ` QGraphicsScene::destroyItemGroup()`.

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

Réimplémente : 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.