QGraphicsItemGroup Class
Die Klasse QGraphicsItemGroup stellt einen Container zur Verfügung, der eine Gruppe von Elementen als ein einzelnes Element behandelt. Mehr...
Kopfzeile: | #include <QGraphicsItemGroup> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Vererbt: | QGraphicsItem |
Öffentliche Typen
enum | anonymous { Type } |
Öffentliche Funktionen
QGraphicsItemGroup(QGraphicsItem *parent = nullptr) | |
virtual | ~QGraphicsItemGroup() |
void | addToGroup(QGraphicsItem *item) |
void | removeFromGroup(QGraphicsItem *item) |
Reimplementierte öffentliche Funktionen
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 |
Detaillierte Beschreibung
Eine QGraphicsItemGroup ist ein spezieller Typ eines zusammengesetzten Elements, das sich selbst und alle seine Kinder als ein Element behandelt (d.h. alle Ereignisse und Geometrien für alle Kinder werden zusammengeführt). Elementgruppen werden häufig in Präsentationswerkzeugen verwendet, wenn der Benutzer mehrere kleinere Elemente zu einem großen Element zusammenfassen möchte, um das Verschieben und Kopieren von Elementen zu vereinfachen.
Wenn Sie nur Elemente innerhalb anderer Elemente speichern möchten, können Sie jedes QGraphicsItem direkt verwenden, indem Sie setParentItem() ein geeignetes übergeordnetes Element übergeben.
Die Funktion boundingRect() von QGraphicsItemGroup gibt das Begrenzungsrechteck aller Elemente in der Elementgruppe zurück. QGraphicsItemGroup ignoriert das ItemIgnoresTransformations-Flag seiner Kinder (d.h. in Bezug auf die Geometrie des Gruppenelements werden die Kinder so behandelt, als ob sie transformierbar wären).
Es gibt zwei Möglichkeiten, eine Elementgruppe zu konstruieren. Der einfachste und gebräuchlichste Ansatz ist die Übergabe einer Liste von Elementen (z. B. alle ausgewählten Elemente) an QGraphicsScene::createItemGroup(), die ein neues QGraphicsItemGroup-Element zurückgibt. Die andere Methode besteht darin, ein QGraphicsItemGroup-Element manuell zu erstellen, es der Szene durch Aufruf von QGraphicsScene::addItem() hinzuzufügen und dann der Gruppe manuell Elemente hinzuzufügen, eines nach dem anderen durch Aufruf von addToGroup(). Um eine Elementgruppe aufzulösen, können Sie entweder QGraphicsScene::destroyItemGroup() aufrufen, oder Sie können alle Elemente manuell aus der Gruppe entfernen, indem Sie removeFromGroup() aufrufen.
// Group all selected items together QGraphicsItemGroup *group = scene->createItemGroup(scene->selecteditems()); // Destroy the group, and delete the group item scene->destroyItemGroup(group);
Beim Hinzufügen und Entfernen von Elementen bleiben die szenenbezogene Position und Transformation der Elemente erhalten, im Gegensatz zum Aufruf von setParentItem(), bei dem nur die szenenbezogene Position und Transformation des untergeordneten Elements beibehalten wird.
Die Funktion addtoGroup() fügt das Zielobjekt zu dieser Objektgruppe hinzu, wobei die Position und Transformation des Objekts relativ zur Szene erhalten bleibt. Visuell bedeutet dies, dass Elemente, die über addToGroup() hinzugefügt werden, als Ergebnis dieser Operation völlig unverändert bleiben, unabhängig von der aktuellen Position oder Transformation des Elements oder der Gruppe; obwohl sich die Position und Matrix des Elements wahrscheinlich ändern werden.
Die Funktion removeFromGroup() hat eine ähnliche Semantik wie setParentItem(); sie repariert das Element auf das übergeordnete Element der Elementgruppe. Wie bei addToGroup() bleiben die szenenbezogene Position und die Transformation des Elements intakt.
Siehe auch QGraphicsItem und Graphics View Framework.
Dokumentation der Mitgliedstypen
enum QGraphicsItemGroup::anonymous
Der Wert, der von der virtuellen Funktion type() zurückgegeben wird.
Konstante | Wert | Beschreibung |
---|---|---|
QGraphicsItemGroup::Type | 10 | Eine grafische Elementgruppe |
Dokumentation der Mitgliedsfunktionen
[explicit]
QGraphicsItemGroup::QGraphicsItemGroup(QGraphicsItem *parent = nullptr)
Konstruiert eine QGraphicsItemGroup. parent wird an den Konstruktor von QGraphicsItem übergeben.
Siehe auch QGraphicsScene::addItem().
[virtual noexcept]
QGraphicsItemGroup::~QGraphicsItemGroup()
Zerstört die QGraphicsItemGroup.
void QGraphicsItemGroup::addToGroup(QGraphicsItem *item)
Fügt das angegebene item und die untergeordneten Elemente zu dieser Elementgruppe hinzu. Das Element und die untergeordneten Elemente werden zu dieser Gruppe repariert, aber seine Position und Transformation relativ zur Szene bleiben intakt.
Siehe auch removeFromGroup() und QGraphicsScene::createItemGroup().
[override virtual]
QRectF QGraphicsItemGroup::boundingRect() const
Reimplements: QGraphicsItem::boundingRect() const.
Liefert das Begrenzungsrechteck dieses Gruppenelements und aller seiner Kinder.
[override virtual]
bool QGraphicsItemGroup::isObscuredBy(const QGraphicsItem *item) const
Reimplements: QGraphicsItem::isObscuredBy(const QGraphicsItem *item) const.
[override virtual]
QPainterPath QGraphicsItemGroup::opaqueArea() const
Reimplements: QGraphicsItem::opaqueArea() const.
[override virtual]
void QGraphicsItemGroup::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
Reimplements: QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget).
void QGraphicsItemGroup::removeFromGroup(QGraphicsItem *item)
Entfernt das angegebene item aus dieser Gruppe. Das Element wird auf das übergeordnete Element dieser Gruppe repariert, oder auf 0, wenn diese Gruppe kein übergeordnetes Element hat. Seine Position und Transformation in Bezug auf die Szene bleiben intakt.
Siehe auch addToGroup() und QGraphicsScene::destroyItemGroup().
[override virtual]
int QGraphicsItemGroup::type() const
Reimplements: QGraphicsItem::type() const.
© 2025 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.