Auf dieser Seite

QGraphicsLayoutItem Class

Die Klasse `QGraphicsLayoutItem` kann vererbt werden, damit Ihre benutzerdefinierten Elemente von Layouts verwaltet werden können. Mehr...

Header: #include <QGraphicsLayoutItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Vererbt an:

QGraphicsLayout und QGraphicsWidget

Öffentliche Funktionen

QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)
virtual ~QGraphicsLayoutItem()
QRectF contentsRect() const
QSizeF effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
QRectF geometry() const
virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const
QGraphicsItem *graphicsItem() const
(since 6.0) virtual bool isEmpty() const
bool isLayout() const
qreal maximumHeight() const
QSizeF maximumSize() const
qreal maximumWidth() const
qreal minimumHeight() const
QSizeF minimumSize() const
qreal minimumWidth() const
bool ownedByLayout() const
QGraphicsLayoutItem *parentLayoutItem() const
qreal preferredHeight() const
QSizeF preferredSize() const
qreal preferredWidth() const
virtual void setGeometry(const QRectF &rect)
void setMaximumHeight(qreal height)
void setMaximumSize(const QSizeF &size)
void setMaximumSize(qreal w, qreal h)
void setMaximumWidth(qreal width)
void setMinimumHeight(qreal height)
void setMinimumSize(const QSizeF &size)
void setMinimumSize(qreal w, qreal h)
void setMinimumWidth(qreal width)
void setParentLayoutItem(QGraphicsLayoutItem *parent)
void setPreferredHeight(qreal height)
void setPreferredSize(const QSizeF &size)
void setPreferredSize(qreal w, qreal h)
void setPreferredWidth(qreal width)
void setSizePolicy(const QSizePolicy &policy)
void setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType)
QSizePolicy sizePolicy() const
virtual void updateGeometry()

Geschützte Funktionen

void setGraphicsItem(QGraphicsItem *item)
void setOwnedByLayout(bool ownership)
virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const = 0

Ausführliche Beschreibung

QGraphicsLayoutItem ist eine abstrakte Klasse, die eine Reihe virtueller Funktionen definiert, welche Größen, Größenrichtlinien und Größenhinweise für jedes Objekt beschreiben, das von QGraphicsLayout angeordnet wird. Die API enthält Funktionen, die sowohl für das Element selbst als auch für den Benutzer des Elements relevant sind, da die meisten Funktionen von QGraphicsLayoutItem auch Teil der öffentlichen API der Unterklasse sind.

In den meisten Fällen bieten bereits vorhandene layoutfähige Klassen wie ` QGraphicsWidget ` und ` QGraphicsLayout ` die von Ihnen benötigte Funktionalität. Durch die Erstellung von Unterklassen dieser Klassen können Sie jedoch sowohl grafische Elemente erstellen, die gut mit Layouts zusammenarbeiten (`QGraphicsWidget`), als auch benutzerdefinierte Layouts (`QGraphicsLayout`).

Erstellen einer Unterklasse von `QGraphicsLayoutItem`

Wenn Sie eine Unterklasse von `QGraphicsLayoutItem` erstellen und deren virtuelle Funktionen neu implementieren, ermöglichen Sie es dem Layout, die Größe Ihres Elements anzupassen und es zusammen mit anderen `QGraphicsLayoutItems` – einschließlich ` QGraphicsWidget ` und ` QGraphicsLayout` – zu positionieren.

Sie können damit beginnen, wichtige Funktionen neu zu implementieren: die geschützte Funktion ` sizeHint()` sowie die öffentliche Funktion ` setGeometry()`. Wenn Ihre Elemente sofortige Änderungen der Geometrie erkennen sollen, können Sie auch ` updateGeometry()` neu implementieren.

Die Geometrie, der Größenhinweis und die Größenrichtlinie beeinflussen die Größe und Position des Elements. Der Aufruf von ` setGeometry()` führt immer sofort zu einer Größenanpassung und Neupositionierung des Elements. Normalerweise wird diese Funktion von ` QGraphicsLayout ` aufgerufen, nachdem das Layout aktiviert wurde, sie kann jedoch auch jederzeit vom Benutzer des Elements aufgerufen werden.

Die Funktion ` sizeHint()` gibt die Größenhinweise für die minimale, bevorzugte und maximale Größe des Elements zurück. Sie können diese Eigenschaften überschreiben, indem Sie ` setMinimumSize()`, ` setPreferredSize()` oder ` setMaximumSize()` aufrufen. Sie können auch Funktionen wie ` setMinimumWidth()` oder ` setMaximumHeight()` verwenden, um bei Bedarf nur die Breite oder Höhe festzulegen.

Die Funktion ` effectiveSizeHint()` hingegen gibt einen Größenhinweis für ein beliebiges ` Qt::SizeHint` zurück und garantiert, dass die zurückgegebene Größe an die Mindest- und Höchstgrößen sowie an die Größenhinweise gebunden ist. Sie können die vertikale und horizontale Größenrichtlinie des Elements festlegen, indem Sie ` setSizePolicy()` aufrufen. Die Eigenschaft ` sizePolicy ` wird vom Layout-System verwendet, um zu beschreiben, wie dieses Element bevorzugt vergrößert oder verkleinert werden soll.

Verschachtelung von QGraphicsLayoutItems

QGraphicsLayoutItems können innerhalb anderer QGraphicsLayoutItems verschachtelt werden, ähnlich wie Layouts, die Unterlayouts enthalten können. Dies geschieht entweder durch Übergabe eines QGraphicsLayoutItem-Zeigers an den geschützten Konstruktor von QGraphicsLayoutItem oder durch Aufruf von ` setParentLayoutItem()`. Die Funktion ` parentLayoutItem()` gibt einen Zeiger auf das übergeordnete `layoutItem` des Elements zurück. Ist das übergeordnete Element des Elements ein ` nullptr ` oder erbt das übergeordnete Element nicht von ` QGraphicsItem`, gibt die Funktion ` parentLayoutItem()` ` nullptr` zurück. ` isLayout()` gibt ` true ` zurück, wenn die Unterklasse von `QGraphicsLayoutItem` selbst ein Layout ist, andernfalls `false`.

Qt nutzt `QGraphicsLayoutItem`, um Layout-Funktionalität im Graphics View Framework bereitzustellen, doch in Zukunft könnte sich seine Verwendung auf das gesamte Qt-Framework ausweiten.

Siehe auch QGraphicsWidget, QGraphicsLayout, QGraphicsLinearLayout und QGraphicsGridLayout.

Dokumentation zu den Mitgliedsfunktionen

QGraphicsLayoutItem::QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)

Erstellt das QGraphicsLayoutItem-Objekt. „ parent “ wird zum übergeordneten Objekt. Ist „ isLayout “ wahr, handelt es sich bei dem Element um ein Layout, andernfalls ist „ isLayout “ falsch.

[virtual noexcept] QGraphicsLayoutItem::~QGraphicsLayoutItem()

Löscht das „ QGraphicsLayoutItem “-Objekt.

QRectF QGraphicsLayoutItem::contentsRect() const

Gibt das Inhaltsrechteck in lokalen Koordinaten zurück.

Das Inhaltsrechteck definiert das Teilrechteck, das von einem zugehörigen Layout beim Anordnen von Unterelementen verwendet wird. Diese Funktion ist eine Hilfsfunktion, die die ` geometry()` des Elements entsprechend seinen Inhaltsrändern anpasst. Beachten Sie, dass ` getContentsMargins()` eine virtuelle Funktion ist, die Sie neu implementieren können, um die Inhaltsränder des Elements zurückzugeben.

Siehe auch ` getContentsMargins()` und ` geometry()`.

QSizeF QGraphicsLayoutItem::effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

Gibt den effektiven Größenhinweis für diesen QGraphicsLayoutItem zurück.

which ist der betreffende Größenhinweis. ` constraint ` ist ein optionales Argument, das bei der Berechnung des effektiven Größenhinweises eine spezielle Einschränkung definiert. Standardmäßig ist ` constraint ` auf ` QSizeF` (-1, -1) gesetzt, was bedeutet, dass keine Einschränkung für den Größenhinweis besteht.

Wenn Sie den Größenhinweis des Widgets für eine bestimmte Breite oder Höhe festlegen möchten, können Sie die feste Abmessung in ` constraint` angeben. Dies ist nützlich für Widgets, die sich nur vertikal oder horizontal ausdehnen können und bei denen entweder die Breite oder die Höhe auf einen bestimmten Wert festgelegt werden muss.

Beispielsweise kann ein Textabsatzelement, das in eine Spaltenbreite von 200 passt, vertikal wachsen. Sie können ` QSizeF(200, -1)` als Einschränkung übergeben, um eine geeignete Mindest-, bevorzugte und maximale Höhe zu erhalten.

Sie können den effektiven Größenhinweis anpassen, indem Sie ` sizeHint()` in einer Unterklasse von ` QGraphicsLayoutItem ` neu implementieren oder indem Sie eine der folgenden Funktionen aufrufen: ` setMinimumSize()`, ` setPreferredSize` oder ` setMaximumSize()` (oder eine Kombination aus beiden).

Diese Funktion speichert jeden der Größenhinweise im Cache und stellt sicher, dass „ sizeHint()“ für jeden Wert von „ which “ nur einmal aufgerufen wird – es sei denn, „ constraint “ ist nicht angegeben und „ updateGeometry()“ wurde aufgerufen.

Siehe auch ` sizeHint()`.

QRectF QGraphicsLayoutItem::geometry() const

Gibt die Geometrie des Elements (z. B. Position und Größe) als ` QRectF` zurück. Diese Funktion entspricht ` QRectF` (pos(), size()).

Siehe auch ` setGeometry()`.

[virtual] void QGraphicsLayoutItem::getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const

Diese virtuelle Funktion stellt die Inhaltsränder „ left “, „ top “, „ right “ und „ bottom “ für dieses „ QGraphicsLayoutItem “ bereit. Die Standardimplementierung geht davon aus, dass alle Inhaltsränder den Wert 0 haben. Die Parameter verweisen auf Werte, die in „qreals“ gespeichert sind. Ist einer der Zeiger auf „ nullptr “ gesetzt, wird dieser Wert nicht aktualisiert.

Siehe auch QGraphicsWidget::setContentsMargins().

QGraphicsItem *QGraphicsLayoutItem::graphicsItem() const

Gibt den „ QGraphicsItem “ zurück, den dieses Layout-Element darstellt. Bei „ QGraphicsWidget “ wird das Element selbst zurückgegeben. Bei benutzerdefinierten Elementen kann ein aggregierter Wert zurückgegeben werden.

Siehe auch ` setGraphicsItem()`.

[virtual, since 6.0] bool QGraphicsLayoutItem::isEmpty() const

Gibt „ true “ zurück, wenn dieses Element leer ist, d. h. wenn es keinen Inhalt hat und keinen Platz beanspruchen sollte.

Die Standardimplementierung gibt „ true “ als „true“ zurück, wenn das Element ausgeblendet wurde, es sei denn, in seiner Eigenschaft „ size policy “ ist „retainSizeWhenHidden“ auf true

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch „ sizePolicy()“.

bool QGraphicsLayoutItem::isLayout() const

Gibt „ true “ zurück, wenn „ QGraphicsLayoutItem “ ein Layout ist (d. h. wenn es von einem Objekt geerbt wird, das andere „ QGraphicsLayoutItem “-Objekte anordnet); andernfalls wird „ false “ zurückgegeben.

Siehe auch QGraphicsLayout.

qreal QGraphicsLayoutItem::maximumHeight() const

Gibt die maximale Höhe zurück.

Siehe auch „ setMaximumHeight()“, „ setMaximumSize()“ und „ maximumSize()“.

QSizeF QGraphicsLayoutItem::maximumSize() const

Gibt die maximale Größe zurück.

Siehe auch setMaximumSize(), minimumSize(), preferredSize(), Qt::MaximumSize und sizeHint().

qreal QGraphicsLayoutItem::maximumWidth() const

Gibt die maximale Breite zurück.

Siehe auch setMaximumWidth(), setMaximumSize() und maximumSize().

qreal QGraphicsLayoutItem::minimumHeight() const

Gibt die minimale Höhe zurück.

Siehe auch „ setMinimumHeight()“, „ setMinimumSize()“ und „ minimumSize()“.

QSizeF QGraphicsLayoutItem::minimumSize() const

Gibt die Mindestgröße zurück.

Siehe auch setMinimumSize(), preferredSize(), maximumSize(), Qt::MinimumSize und sizeHint().

qreal QGraphicsLayoutItem::minimumWidth() const

Gibt die minimale Breite zurück.

Siehe auch setMinimumWidth(), setMinimumSize() und minimumSize().

bool QGraphicsLayoutItem::ownedByLayout() const

Gibt zurück, ob ein Layout dieses Element in seinem Destruktor löschen soll. Ist der Wert „true“, löscht das Layout das Element. Ist der Wert „false“, wird davon ausgegangen, dass ein anderes Objekt die Eigentumsrechte daran besitzt, und das Layout löscht dieses Element nicht.

Wenn das Element sowohl von „ QGraphicsItem “ als auch von „ QGraphicsLayoutItem “ erbt (wie beispielsweise „ QGraphicsWidget “), ist das Element tatsächlich Teil zweier Eigentums-Hierarchien. Diese Eigenschaft gibt an, wie das Layout bei seiner Zerstörung mit seinen untergeordneten Elementen verfahren soll. Im Fall von „ QGraphicsWidget “ wird bevorzugt, dass das Layout beim Löschen seine untergeordneten Elemente nicht löscht (da diese ebenfalls Teil der Grafikobjekthierarchie sind).

Standardmäßig wird dieser Wert in ` QGraphicsLayoutItem` auf `false` gesetzt, wird jedoch von ` QGraphicsLayout ` überschrieben, sodass `true` zurückgegeben wird. Dies liegt daran, dass ` QGraphicsLayout ` normalerweise nicht Teil der ` QGraphicsItem `-Hierarchie ist, sodass das übergeordnete Layout es löschen sollte. Unterklassen können dieses Standardverhalten überschreiben, indem sie ` setOwnedByLayout(true)` aufrufen.

Siehe auch setOwnedByLayout().

QGraphicsLayoutItem *QGraphicsLayoutItem::parentLayoutItem() const

Gibt das übergeordnete Element dieses QGraphicsLayoutItem zurück oder nullptr, falls kein übergeordnetes Element vorhanden ist oder dieses nicht von QGraphicsLayoutItem erbt (QGraphicsLayoutItem wird häufig im Rahmen der Mehrfachvererbung mit von QObject abgeleiteten Klassen verwendet).

Siehe auch ` setParentLayoutItem()`.

qreal QGraphicsLayoutItem::preferredHeight() const

Gibt die bevorzugte Höhe zurück.

Siehe auch setPreferredHeight(), setPreferredSize() und preferredSize().

QSizeF QGraphicsLayoutItem::preferredSize() const

Gibt die bevorzugte Größe zurück.

Siehe auch setPreferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize und sizeHint().

qreal QGraphicsLayoutItem::preferredWidth() const

Gibt die bevorzugte Breite zurück.

Siehe auch setPreferredWidth(), setPreferredSize() und preferredSize().

[virtual] void QGraphicsLayoutItem::setGeometry(const QRectF &rect)

Diese virtuelle Funktion legt die Geometrie von ` QGraphicsLayoutItem ` auf ` rect` fest, wobei es sich um die Koordinaten des übergeordneten Elements handelt (z. B. entspricht die obere linke Ecke von ` rect ` der Position des Elements in den Koordinaten des übergeordneten Elements).

Sie müssen diese Funktion in einer Unterklasse von ` QGraphicsLayoutItem ` neu implementieren, um Geometrie-Aktualisierungen zu erhalten. Das Layout ruft diese Funktion auf, wenn es eine Neuanordnung durchführt.

Befindet sich ` rect ` außerhalb der Grenzen von ` minimumSize ` und ` maximumSize`, wird es auf die nächstgelegene Größe angepasst, sodass es innerhalb der zulässigen Grenzen liegt.

Siehe auch geometry().

[protected] void QGraphicsLayoutItem::setGraphicsItem(QGraphicsItem *item)

Wenn „ QGraphicsLayoutItem “ ein „ QGraphicsItem “ darstellt und die automatischen Funktionen zur Neuzuweisung von Elternelementen von „ QGraphicsLayout “ nutzen möchte, sollte dieser Wert gesetzt werden. Beachten Sie: Wenn Sie „ item “ löschen, ohne das Layout-Element zu löschen, müssen Sie „setGraphicsItem(nullptr)“ aufrufen, um einen „dangling pointer“ zu vermeiden.

Siehe auch ` graphicsItem()`.

void QGraphicsLayoutItem::setMaximumHeight(qreal height)

Legt die maximale Höhe auf height fest.

Siehe auch maximumHeight(), setMaximumSize() und maximumSize().

void QGraphicsLayoutItem::setMaximumSize(const QSizeF &size)

Legt die maximale Größe auf „ size “ fest. Diese Eigenschaft überschreibt „ sizeHint()“ für „ Qt::MaximumSize “ und stellt sicher, dass „ effectiveSizeHint()“ niemals eine Größe zurückgibt, die größer ist als „ size “. Um die maximale Größe aufzuheben, verwenden Sie eine ungültige Größe.

Siehe auch „ maximumSize()“, „ minimumSize()“, „ preferredSize()“, „ Qt::MaximumSize “ und „ sizeHint()“.

void QGraphicsLayoutItem::setMaximumSize(qreal w, qreal h)

Diese Komfortfunktion entspricht dem Aufruf von `setMaximumSize(QSizeF(w, h))`.

Siehe auch maximumSize(), setMinimumSize(), setPreferredSize() und sizeHint().

void QGraphicsLayoutItem::setMaximumWidth(qreal width)

Legt die maximale Breite auf width fest.

Siehe auch maximumWidth(), setMaximumSize() und maximumSize().

void QGraphicsLayoutItem::setMinimumHeight(qreal height)

Legt die Mindesthöhe auf „ height “ fest.

Siehe auch minimumHeight(), setMinimumSize() und minimumSize().

void QGraphicsLayoutItem::setMinimumSize(const QSizeF &size)

Legt die Mindestgröße auf size fest. Diese Eigenschaft überschreibt sizeHint() für Qt::MinimumSize und stellt sicher, dass effectiveSizeHint() niemals eine Größe zurückgibt, die kleiner ist als size. Um die Mindestgröße aufzuheben, verwenden Sie eine ungültige Größe.

Siehe auch minimumSize(), maximumSize(), preferredSize(), Qt::MinimumSize, sizeHint(), setMinimumWidth() und setMinimumHeight().

void QGraphicsLayoutItem::setMinimumSize(qreal w, qreal h)

Diese Komfortfunktion entspricht dem Aufruf von `setMinimumSize(QSizeF(w, h))`.

Siehe auch minimumSize(), setMaximumSize(), setPreferredSize() und sizeHint().

void QGraphicsLayoutItem::setMinimumWidth(qreal width)

Legt die Mindestbreite auf width fest.

Siehe auch minimumWidth(), setMinimumSize() und minimumSize().

[protected] void QGraphicsLayoutItem::setOwnedByLayout(bool ownership)

Legt fest, ob ein Layout dieses Element in seinem Destruktor löschen soll oder nicht. „ ownership “ muss auf „true“ gesetzt sein, damit das Layout es löscht.

Siehe auch „ ownedByLayout()“.

void QGraphicsLayoutItem::setParentLayoutItem(QGraphicsLayoutItem *parent)

Legt das übergeordnete Element dieses „ QGraphicsLayoutItem “ auf „ parent “ fest.

Siehe auch parentLayoutItem().

void QGraphicsLayoutItem::setPreferredHeight(qreal height)

Legt die bevorzugte Höhe auf „ height “ fest.

Siehe auch preferredHeight(), preferredWidth(), setPreferredSize() und preferredSize().

void QGraphicsLayoutItem::setPreferredSize(const QSizeF &size)

Legt die bevorzugte Größe auf „ size “ fest. Diese Eigenschaft überschreibt „ sizeHint()“ für „ Qt::PreferredSize “ und liefert den Standardwert für „ effectiveSizeHint()“. Um die bevorzugte Größe zurückzusetzen, verwenden Sie eine ungültige Größe.

Siehe auch preferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize sowie sizeHint().

void QGraphicsLayoutItem::setPreferredSize(qreal w, qreal h)

Diese Komfortfunktion entspricht dem Aufruf von `setPreferredSize(QSizeF(w, h))`.

Siehe auch preferredSize(), setMaximumSize(), setMinimumSize() und sizeHint().

void QGraphicsLayoutItem::setPreferredWidth(qreal width)

Legt die bevorzugte Breite auf „ width “ fest.

Siehe auch preferredWidth(), preferredHeight(), setPreferredSize() und preferredSize().

void QGraphicsLayoutItem::setSizePolicy(const QSizePolicy &policy)

Legt die Größenrichtlinie auf „ policy “ fest. Die Größenrichtlinie beschreibt, wie sich das Element in der Breite und Höhe vergrößern soll, wenn es in einem Layout angeordnet wird.

QGraphicsLayoutItemDie Standardgrößenrichtlinie lautet (QSizePolicy::Fixed, QSizePolicy::Fixed, QSizePolicy::DefaultType), doch häufig ändern Unterklassen diese Voreinstellung. Beispielsweise ist die Standardgröße von QGraphicsWidget (QSizePolicy::Preferred, QSizePolicy::Preferred, QSizePolicy::DefaultType).

Siehe auch sizePolicy() und QWidget::sizePolicy().

void QGraphicsLayoutItem::setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType)

Diese Funktion entspricht dem Aufruf von `setSizePolicy(QSizePolicy(hPolicy, vPolicy, controlType))`.

Dies ist eine überladene Funktion.

Siehe auch ` sizePolicy()` und ` QWidget::sizePolicy()`.

[pure virtual protected] QSizeF QGraphicsLayoutItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const

Diese rein virtuelle Funktion gibt den Größenhinweis für ` which ` des ` QGraphicsLayoutItem` zurück und verwendet dabei die Breite oder Höhe von ` constraint `, um die Ausgabe einzuschränken.

Implementieren Sie diese Funktion in einer Unterklasse von ` QGraphicsLayoutItem ` neu, um die erforderlichen Größenhinweise für Ihre Elemente bereitzustellen.

Siehe auch effectiveSizeHint().

QSizePolicy QGraphicsLayoutItem::sizePolicy() const

Gibt die aktuelle Größenrichtlinie zurück.

Siehe auch „ setSizePolicy()“ und „ QWidget::sizePolicy()“.

[virtual] void QGraphicsLayoutItem::updateGeometry()

Diese virtuelle Funktion löscht alle zwischengespeicherten Informationen zu Größenhinweisen. Sie sollten diese Funktion immer aufrufen, wenn Sie den Rückgabewert der Funktion ` sizeHint()` ändern. Unterklassen müssen bei der Neuimplementierung dieser Funktion stets die Basisimplementierung aufrufen.

Siehe auch ` effectiveSizeHint()`.

© 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.