QGraphicsItemGroup Class
La classe QGraphicsItemGroup fournit un conteneur qui traite un groupe d'éléments comme un seul élément. Plus d'informations...
| En-tête : | #include <QGraphicsItemGroup> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Héritages : | 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 spécial d'élément composé qui se traite lui-même et tous ses enfants comme un seul élément (c'est-à-dire que tous les événements et 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 directement n'importe quel QGraphicsItem en passant un parent approprié à setParentItem().
La fonction boundingRect() de QGraphicsItemGroup renvoie le rectangle de délimitation de tous les éléments du groupe d'éléments. QGraphicsItemGroup ignore l'indicateur ItemIgnoresTransformations de ses enfants (c'est-à-dire qu'en ce qui concerne 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 construire un groupe d'éléments. L'approche la plus simple et la plus courante consiste à transmettre une liste d'éléments (par exemple, tous les éléments sélectionnés) à QGraphicsScene::createItemGroup(), qui renvoie un nouvel élément QGraphicsItemGroup. L'autre approche consiste à construire 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 ("ungroup") 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);
L'opération d'ajout et de suppression d'éléments préserve la position et la transformation des éléments par rapport à la scène, contrairement à l'appel à setParentItem(), où seules la position et la transformation de l'élément enfant par rapport au parent sont conservées.
La fonction addtoGroup() reporte l'élément cible dans ce groupe d'éléments, en conservant 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 complètement 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() a une sémantique similaire à celle de setParentItem() ; elle reporte l'élément sur l'élément parent du groupe d'éléments. Comme pour addToGroup(), la position et la transformation de l'élément par rapport à la scène restent intactes.
Voir également QGraphicsItem et Graphics View Framework.
Documentation sur les types de membres
[anonymous] enum
Valeur renvoyée par la fonction virtuelle type().
| Constante | Valeur | Description de l'élément |
|---|---|---|
QGraphicsItemGroup::Type | 10 | Un groupe d'éléments graphiques |
Fonction membre Documentation
[explicit] QGraphicsItemGroup::QGraphicsItemGroup(QGraphicsItem *parent = nullptr)
Construit un QGraphicsItemGroup. parent est transmis au constructeur de QGraphicsItem.
Voir également QGraphicsScene::addItem().
[virtual noexcept] QGraphicsItemGroup::~QGraphicsItemGroup()
Détruit le site QGraphicsItemGroup.
void QGraphicsItemGroup::addToGroup(QGraphicsItem *item)
Ajoute l'élément item et les éléments enfants de l'élément à ce groupe d'éléments. L'élément et les éléments enfants seront replacés dans ce groupe, mais sa position et sa transformation par rapport à la scène resteront intactes.
Voir aussi 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 le site item spécifié de ce groupe. L'élément sera repositionné sur l'élément parent de ce groupe, ou sur 0 si ce groupe n'a pas de parent. Sa position et sa transformation par rapport à la scène resteront intactes.
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.