QGraphicsLayoutItem Class
La classe `QGraphicsLayoutItem` peut être héritée afin de permettre la gestion de vos éléments personnalisés par les dispositions. En savoir plus...
| En-tête : | #include <QGraphicsLayoutItem> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérité par : |
Fonctions publiques
| 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() |
Fonctions protégées
| void | setGraphicsItem(QGraphicsItem *item) |
| void | setOwnedByLayout(bool ownership) |
| virtual QSizeF | sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const = 0 |
Description détaillée
QGraphicsLayoutItem est une classe abstraite qui définit un ensemble de fonctions virtuelles décrivant les tailles, les politiques de taille et les indications de taille pour tout objet disposé par QGraphicsLayout. L'API contient des fonctions pertinentes tant pour l'élément lui-même que pour l'utilisateur de l'élément, car la plupart des fonctions de QGraphicsLayoutItem font également partie de l'API publique de la sous-classe.
Dans la plupart des cas, les classes existantes prenant en charge la mise en page, telles que ` QGraphicsWidget ` et ` QGraphicsLayout `, fournissent déjà les fonctionnalités dont vous avez besoin. Cependant, la création de sous-classes de ces classes vous permettra de créer à la fois des éléments graphiques qui s’intègrent bien aux mises en page (QGraphicsWidget) et des mises en page personnalisées (QGraphicsLayout).
Création d’une sous-classe de QGraphicsLayoutItem
Si vous créez une sous-classe de QGraphicsLayoutItem et que vous réimplémentez ses fonctions virtuelles, vous permettrez à la mise en page de redimensionner et de positionner votre élément aux côtés d’autres QGraphicsLayoutItems, notamment QGraphicsWidget et QGraphicsLayout.
Vous pouvez commencer par réimplémenter les fonctions importantes : la fonction protégée ` sizeHint()` ainsi que la fonction publique ` setGeometry()`. Si vous souhaitez que vos éléments prennent en compte les modifications immédiates de la géométrie, vous pouvez également réimplémenter ` updateGeometry()`.
La géométrie, l’indicateur de taille et la politique de taille affectent la taille et la position de l’élément. L’appel de ` setGeometry()` redimensionne et repositionne toujours l’élément immédiatement. Normalement, cette fonction est appelée par ` QGraphicsLayout ` une fois la mise en page activée, mais elle peut également être appelée à tout moment par l’utilisateur de l’élément.
La fonction sizeHint() renvoie les indications de taille minimale, préférée et maximale de l’élément. Vous pouvez redéfinir ces propriétés en appelant setMinimumSize(), setPreferredSize() ou setMaximumSize(). Vous pouvez également utiliser des fonctions telles que setMinimumWidth() ou setMaximumHeight() pour définir uniquement la largeur ou la hauteur si vous le souhaitez.
La fonction ` effectiveSizeHint()` renvoie quant à elle une indication de taille pour un ` Qt::SizeHint` donné et garantit que la taille renvoyée respecte les tailles minimale et maximale ainsi que les indications de taille. Vous pouvez définir la politique de taille verticale et horizontale de l’élément en appelant ` setSizePolicy()`. La propriété ` sizePolicy ` est utilisée par le système de mise en page pour décrire la manière dont cet élément préfère s’étendre ou se rétrécir.
Imbrication des QGraphicsLayoutItems
Les `QGraphicsLayoutItems` peuvent être imbriqués dans d’autres `QGraphicsLayoutItems`, à l’instar des mises en page pouvant contenir des sous-mises en page. Cela s’effectue soit en passant un pointeur vers un `QGraphicsLayoutItem` au constructeur protégé de `QGraphicsLayoutItem`, soit en appelant la fonction ` setParentLayoutItem()` (). La fonction ` parentLayoutItem()` renvoie un pointeur vers le parent `layoutItem` de l’élément. Si le parent de l’élément est de type ` nullptr ` ou s’il n’hérite pas de ` QGraphicsItem`, la fonction ` parentLayoutItem()` renvoie alors ` nullptr`. La fonction ` isLayout()` renvoie ` true ` si la sous-classe de `QGraphicsLayoutItem` est elle-même une mise en page, ou `false` dans le cas contraire.
Qt utilise QGraphicsLayoutItem pour fournir des fonctionnalités de mise en page dans le Graphics View Framework, mais à l’avenir, son utilisation pourrait s’étendre à l’ensemble de Qt.
Voir également QGraphicsWidget, QGraphicsLayout, QGraphicsLinearLayout et QGraphicsGridLayout.
Documentation des fonctions membres
QGraphicsLayoutItem::QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)
Crée l'objet `QGraphicsLayoutItem`. ` parent ` devient le parent de l'objet. Si ` isLayout ` est vrai, l'élément est une mise en page ; sinon, ` isLayout ` est faux.
[virtual noexcept] QGraphicsLayoutItem::~QGraphicsLayoutItem()
Supprime l'objet « QGraphicsLayoutItem ».
QRectF QGraphicsLayoutItem::contentsRect() const
Renvoie le rectangle de contenu en coordonnées locales.
Le rectangle de contenu définit le sous-rectangle utilisé par une mise en page associée lors de l'agencement des sous-éléments. Cette fonction est une fonction de commodité qui ajuste l'élément ` geometry()` en fonction de ses marges de contenu. Notez que ` getContentsMargins()` est une fonction virtuelle que vous pouvez réimplémenter pour renvoyer les marges de contenu de l'élément.
Voir également getContentsMargins() et geometry().
QSizeF QGraphicsLayoutItem::effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
Renvoie l'indication de taille effective pour cette balise QGraphicsLayoutItem.
which est l'indication de taille en question. constraint est un argument facultatif qui définit une contrainte particulière lors du calcul de l'indication de taille effective. Par défaut, constraint est QSizeF(-1, -1), ce qui signifie qu’il n’y a aucune contrainte sur l’indication de taille.
Si vous souhaitez spécifier l’indication de taille du widget pour une largeur ou une hauteur donnée, vous pouvez fournir la dimension fixe dans constraint. Cela s’avère utile pour les widgets qui ne peuvent s’étendre que verticalement ou horizontalement, et pour lesquels il est nécessaire de définir soit leur largeur, soit leur hauteur à une valeur spécifique.
Par exemple, un élément de paragraphe de texte s’adaptant à une largeur de colonne de 200 peut s’étendre verticalement. Vous pouvez passer QSizeF(200, -1) comme contrainte pour obtenir une hauteur minimale, préférée et maximale adaptées.
Vous pouvez ajuster l’indicateur de taille effective en réimplémentant ` sizeHint()` dans une sous-classe de ` QGraphicsLayoutItem `, ou en appelant l’une des fonctions suivantes : ` setMinimumSize()`, ` setPreferredSize` ou ` setMaximumSize()` (ou une combinaison des deux).
Cette fonction met en cache chacune des indications de taille et garantit que la fonction sizeHint() ne sera appelée qu’une seule fois pour chaque valeur de which – à moins que constraint ne soit pas spécifié et que updateGeometry() ait été appelée.
Voir également sizeHint().
QRectF QGraphicsLayoutItem::geometry() const
Renvoie la géométrie de l'élément (par exemple, sa position et sa taille) sous la forme d'un objet ` QRectF`. Cette fonction est équivalente à ` QRectF` (pos(), size()).
Voir également setGeometry().
[virtual] void QGraphicsLayoutItem::getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const
Cette fonction virtuelle fournit les marges de contenu left, top, right et bottom pour cet élément QGraphicsLayoutItem. L'implémentation par défaut considère que toutes les marges de contenu sont égales à 0. Les paramètres pointent vers des valeurs stockées dans qreals. Si l'un des pointeurs est nullptr, cette valeur ne sera pas mise à jour.
Voir également QGraphicsWidget::setContentsMargins().
QGraphicsItem *QGraphicsLayoutItem::graphicsItem() const
Renvoie l'QGraphicsItem que cet élément de mise en page représente. Pour les éléments « QGraphicsWidget », il renvoie l'élément lui-même. Pour les éléments personnalisés, il peut renvoyer une valeur agrégée.
Voir également setGraphicsItem().
[virtual, since 6.0] bool QGraphicsLayoutItem::isEmpty() const
Renvoie true si cet élément est vide, c'est-à-dire s'il ne contient rien et ne doit occuper aucun espace.
L'implémentation par défaut renvoie ` true ` true si l’élément a été masqué, sauf si la propriété `retainSizeWhenHidden` de son objet ` size policy ` est définie sur true
Cette fonction a été introduite dans Qt 6.0.
Voir également ` sizePolicy()`.
bool QGraphicsLayoutItem::isLayout() const
Renvoie « true » si cet objet « QGraphicsLayoutItem » est une disposition (c'est-à-dire s'il est hérité par un objet qui organise d'autres objets « QGraphicsLayoutItem ») ; sinon, renvoie « false ».
Voir également QGraphicsLayout.
qreal QGraphicsLayoutItem::maximumHeight() const
Renvoie la hauteur maximale.
Voir également setMaximumHeight(), setMaximumSize() et maximumSize().
QSizeF QGraphicsLayoutItem::maximumSize() const
Renvoie la taille maximale.
Voir également setMaximumSize(), minimumSize(), preferredSize(), Qt::MaximumSize et sizeHint().
qreal QGraphicsLayoutItem::maximumWidth() const
Renvoie la largeur maximale.
Voir aussi setMaximumWidth(), setMaximumSize() et maximumSize().
qreal QGraphicsLayoutItem::minimumHeight() const
Renvoie la hauteur minimale.
Voir également setMinimumHeight(), setMinimumSize() et minimumSize().
QSizeF QGraphicsLayoutItem::minimumSize() const
Renvoie la taille minimale.
Voir également setMinimumSize(), preferredSize(), maximumSize(), Qt::MinimumSize et sizeHint().
qreal QGraphicsLayoutItem::minimumWidth() const
Renvoie la largeur minimale.
Voir également setMinimumWidth(), setMinimumSize() et minimumSize().
bool QGraphicsLayoutItem::ownedByLayout() const
Indique si une mise en page doit supprimer cet élément dans son destructeur. Si la valeur est « true », la mise en page le supprimera. Si la valeur est « false », on suppose qu’un autre objet en détient la propriété, et la mise en page ne supprimera pas cet élément.
Si l’élément hérite à la fois de ` QGraphicsItem ` et de ` QGraphicsLayoutItem ` (comme c’est le cas de ` QGraphicsWidget `), il fait en réalité partie de deux hiérarchies de propriété. Cette propriété indique ce que la mise en page doit faire de ses éléments enfants lors de sa destruction. Dans le cas de QGraphicsWidget, il est préférable que, lorsque la mise en page est supprimée, elle ne supprime pas ses éléments enfants (puisqu’ils font également partie de la hiérarchie des éléments graphiques).
Par défaut, cette valeur est initialisée à « false » dans ` QGraphicsLayoutItem`, mais elle est redéfinie par ` QGraphicsLayout ` pour renvoyer « true ». En effet, ` QGraphicsLayout ` ne fait normalement pas partie de la hiérarchie de ` QGraphicsItem `, et c’est donc la mise en page parente qui doit la supprimer. Les sous-classes peuvent redéfinir ce comportement par défaut en appelant ` setOwnedByLayout(true)`.
Voir également setOwnedByLayout().
QGraphicsLayoutItem *QGraphicsLayoutItem::parentLayoutItem() const
Renvoie le parent de cette classe ` QGraphicsLayoutItem`, ou ` nullptr ` s'il n'y a pas de parent, ou si le parent n'hérite pas de ` QGraphicsLayoutItem ` (`QGraphicsLayoutItem ` est souvent utilisé dans le cadre d'un héritage multiple avec des classes dérivées de ` QObject`).
Voir également setParentLayoutItem().
qreal QGraphicsLayoutItem::preferredHeight() const
Renvoie la hauteur préférée.
Voir également setPreferredHeight(), setPreferredSize() et preferredSize().
QSizeF QGraphicsLayoutItem::preferredSize() const
Renvoie la taille préférée.
Voir également setPreferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize et sizeHint().
qreal QGraphicsLayoutItem::preferredWidth() const
Renvoie la largeur préférée.
Voir également setPreferredWidth(), setPreferredSize() et preferredSize().
[virtual] void QGraphicsLayoutItem::setGeometry(const QRectF &rect)
Cette fonction virtuelle définit la géométrie de l'QGraphicsLayoutItem en rect, qui est exprimée dans les coordonnées du parent (par exemple, le coin supérieur gauche de rect correspond à la position de l'élément dans les coordonnées du parent).
Vous devez réimplémenter cette fonction dans une sous-classe de ` QGraphicsLayoutItem ` pour recevoir les mises à jour de la géométrie. La mise en page appellera cette fonction lorsqu'elle effectuera un réagencement.
Si rect se trouve en dehors des limites de minimumSize et maximumSize, il sera ajusté à la taille la plus proche afin de rester dans les limites autorisées.
Voir également geometry().
[protected] void QGraphicsLayoutItem::setGraphicsItem(QGraphicsItem *item)
Si l'QGraphicsLayoutItem représente un QGraphicsItem et qu'il souhaite tirer parti des fonctionnalités de réaffectation automatique de QGraphicsLayout, il doit définir cette valeur. Notez que si vous supprimez item sans supprimer l'élément de mise en page, vous devez appeler setGraphicsItem(nullptr) afin d'éviter la création d'un pointeur orphelin.
Voir également graphicsItem().
void QGraphicsLayoutItem::setMaximumHeight(qreal height)
Définit la hauteur maximale à height.
Voir également maximumHeight(), setMaximumSize() et maximumSize().
void QGraphicsLayoutItem::setMaximumSize(const QSizeF &size)
Définit la taille maximale à size. Cette propriété remplace la méthode sizeHint() pour Qt::MaximumSize et garantit que la méthode effectiveSizeHint() ne renverra jamais une taille supérieure à size. Pour désactiver la taille maximale, utilisez une taille non valide.
Voir également maximumSize(), minimumSize(), preferredSize(), Qt::MaximumSize et sizeHint().
void QGraphicsLayoutItem::setMaximumSize(qreal w, qreal h)
Cette fonction pratique équivaut à appeler `setMaximumSize(QSizeF(w, h))`.
Voir également maximumSize(), setMinimumSize(), setPreferredSize() et sizeHint().
void QGraphicsLayoutItem::setMaximumWidth(qreal width)
Définit la largeur maximale à width.
Voir également maximumWidth(), setMaximumSize() et maximumSize().
void QGraphicsLayoutItem::setMinimumHeight(qreal height)
Définit la hauteur minimale à height.
Voir également minimumHeight(), setMinimumSize() et minimumSize().
void QGraphicsLayoutItem::setMinimumSize(const QSizeF &size)
Définit la taille minimale à size. Cette propriété remplace la méthode sizeHint() pour Qt::MinimumSize et garantit que la méthode effectiveSizeHint() ne renverra jamais une taille inférieure à size. Pour désactiver la taille minimale, utilisez une taille non valide.
Voir également minimumSize(), maximumSize(), preferredSize(), Qt::MinimumSize, sizeHint(), setMinimumWidth() et setMinimumHeight().
void QGraphicsLayoutItem::setMinimumSize(qreal w, qreal h)
Cette fonction pratique équivaut à appeler setMinimumSize(QSizeF(w, h)).
Voir également minimumSize(), setMaximumSize(), setPreferredSize() et sizeHint().
void QGraphicsLayoutItem::setMinimumWidth(qreal width)
Définit la largeur minimale à width.
Voir également minimumWidth(), setMinimumSize() et minimumSize().
[protected] void QGraphicsLayoutItem::setOwnedByLayout(bool ownership)
Détermine si une mise en page doit supprimer cet élément dans son destructeur ou non. La propriété « ownership » doit être définie sur « true » pour que la mise en page puisse le supprimer.
Voir également ownedByLayout().
void QGraphicsLayoutItem::setParentLayoutItem(QGraphicsLayoutItem *parent)
Définit le parent de cet QGraphicsLayoutItem sur parent.
Voir aussi parentLayoutItem().
void QGraphicsLayoutItem::setPreferredHeight(qreal height)
Définit la hauteur par défaut sur height.
Voir également preferredHeight(), preferredWidth(), setPreferredSize() et preferredSize().
void QGraphicsLayoutItem::setPreferredSize(const QSizeF &size)
Définit la taille préférée sur size. Cette propriété remplace la méthode sizeHint() pour Qt::PreferredSize et fournit la valeur par défaut pour effectiveSizeHint(). Pour désactiver la taille préférée, utilisez une taille non valide.
Voir également preferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize et sizeHint().
void QGraphicsLayoutItem::setPreferredSize(qreal w, qreal h)
Cette fonction pratique équivaut à appeler setPreferredSize(QSizeF(w, h)).
Voir également preferredSize(), setMaximumSize(), setMinimumSize() et sizeHint().
void QGraphicsLayoutItem::setPreferredWidth(qreal width)
Définit la largeur préférée sur width.
Voir également preferredWidth(), preferredHeight(), setPreferredSize() et preferredSize().
void QGraphicsLayoutItem::setSizePolicy(const QSizePolicy &policy)
Définit la politique de taille sur policy. La politique de taille décrit comment l'élément doit s'étendre horizontalement et verticalement lorsqu'il est intégré à une mise en page.
QGraphicsLayoutItemLa politique de taille par défaut est (QSizePolicy::Fixed, QSizePolicy::Fixed, QSizePolicy::DefaultType), mais il est courant que les sous-classes modifient cette valeur par défaut. Par exemple, QGraphicsWidget utilise par défaut (QSizePolicy::Preferred, QSizePolicy::Preferred, QSizePolicy::DefaultType).
Voir également sizePolicy() et QWidget::sizePolicy().
void QGraphicsLayoutItem::setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType)
Cette fonction équivaut à appeler setSizePolicy(QSizePolicy(hPolicy, vPolicy, controlType)).
Il s'agit d'une fonction surchargée.
Voir également sizePolicy() et QWidget::sizePolicy().
[pure virtual protected] QSizeF QGraphicsLayoutItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
Cette fonction purement virtuelle renvoie les indications de taille pour ` which ` de ` QGraphicsLayoutItem`, en utilisant la largeur ou la hauteur de ` constraint ` pour contraindre la sortie.
Réimplémentez cette fonction dans une sous-classe de ` QGraphicsLayoutItem ` afin de fournir les indications de taille nécessaires pour vos éléments.
Voir également effectiveSizeHint().
QSizePolicy QGraphicsLayoutItem::sizePolicy() const
Renvoie la politique de taille actuelle.
Voir également setSizePolicy() et QWidget::sizePolicy().
[virtual] void QGraphicsLayoutItem::updateGeometry()
Cette fonction virtuelle efface toute information de taille mise en cache. Vous devez toujours appeler cette fonction si vous modifiez la valeur de retour de la fonction sizeHint(). Les sous-classes doivent toujours appeler l'implémentation de base lorsqu'elles réimplémentent cette fonction.
Voir également ` 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.