QGraphicsLayoutItem Class
La classe QGraphicsLayoutItem peut être héritée pour permettre à vos éléments personnalisés d'être gérés par les layouts. Plus d'informations...
| En-tête : | #include <QGraphicsLayoutItem> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Héritée de : |
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 classé par QGraphicsLayout. L'API contient des fonctions pertinentes à la fois pour l'objet lui-même et pour l'utilisateur de l'objet, 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 de mise en page existantes, telles que QGraphicsWidget et QGraphicsLayout, fournissent déjà les fonctionnalités dont vous avez besoin. Toutefois, la sous-classification de ces classes vous permettra de créer des éléments graphiques qui fonctionnent bien avec les dispositions (QGraphicsWidget) ou des dispositions personnalisées (QGraphicsLayout).
Sous-classement de QGraphicsLayoutItem
Si vous créez une sous-classe de QGraphicsLayoutItem et réimplémentez ses fonctions virtuelles, vous permettrez à la mise en page de redimensionner et de positionner votre élément avec d'autres QGraphicsLayoutItems, notamment QGraphicsWidget et QGraphicsLayout.
Vous pouvez commencer par réimplémenter des fonctions importantes : la fonction protégée sizeHint(), ainsi que la fonction publique setGeometry(). Si vous souhaitez que vos éléments soient informés des changements de géométrie immédiats, vous pouvez également réimplémenter la fonction updateGeometry().
La géométrie, l'indice de taille et la politique de taille affectent la taille et la position de l'élément. L'appel à setGeometry() permet toujours de redimensionner et de repositionner l'élément immédiatement. Normalement, cette fonction est appelée par QGraphicsLayout après l'activation de la mise en page, mais elle peut également être appelée par l'utilisateur de l'élément à tout moment.
La fonction sizeHint() renvoie les indications de taille minimale, préférée et maximale de l'élément. Vous pouvez remplacer 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 de l'élément si vous le souhaitez.
La fonction effectiveSizeHint(), quant à elle, renvoie une indication de taille pour tout Qt::SizeHint donné et garantit que la taille renvoyée est liée aux tailles minimale et maximale et aux indications de taille. Vous pouvez définir la politique de taille verticale et horizontale de l'élément en appelant la fonction 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 grandir ou rétrécir.
Imbrication de QGraphicsLayoutItems
Les QGraphicsLayoutItems peuvent être imbriqués dans d'autres QGraphicsLayoutItems, de la même manière que les mises en page peuvent contenir des sous-mises en page. Pour ce faire, il suffit de passer un pointeur QGraphicsLayoutItem au constructeur protégé de QGraphicsLayoutItem ou d'appeler la fonction setParentLayoutItem(). La fonction parentLayoutItem() renvoie un pointeur sur le parent layoutItem de l'élément. Si le parent de l'élément est nullptr ou si le parent n'hérite pas de QGraphicsItem, la fonction parentLayoutItem() renvoie alors nullptr. isLayout() renvoie true si la sous-classe QGraphicsLayoutItem est elle-même une disposition, ou false dans le cas contraire.
Qt utilise QGraphicsLayoutItem pour fournir la fonctionnalité de mise en page dans le cadre de la vue graphique, mais à l'avenir son utilisation pourrait s'étendre à l'ensemble de Qt lui-même.
Voir aussi QGraphicsWidget, QGraphicsLayout, QGraphicsLinearLayout, et QGraphicsGridLayout.
Documentation des fonctions membres
QGraphicsLayoutItem::QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false)
Construit l'objet QGraphicsLayoutItem. parent devient le parent de l'objet. Si isLayout est vrai, l'élément est une disposition, sinon isLayout est faux.
[virtual noexcept] QGraphicsLayoutItem::~QGraphicsLayoutItem()
Détruit 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 la disposition des sous-éléments. Cette fonction est une fonction de commodité qui ajuste la valeur de geometry() de l'élément en fonction des marges de son contenu. Notez que getContentsMargins() est une fonction virtuelle que vous pouvez réimplémenter pour renvoyer les marges du contenu de l'élément.
Voir aussi getContentsMargins() et geometry().
QSizeF QGraphicsLayoutItem::effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
Renvoie l'indice de taille effective pour cette QGraphicsLayoutItem.
which est l'indice de taille en question. constraint est un argument facultatif qui définit une contrainte spéciale lors du calcul de l'indice de taille effectif. Par défaut, constraint est QSizeF(-1, -1), ce qui signifie qu'il n'y a pas de contrainte pour l'indice de taille.
Si vous souhaitez spécifier l'indice de taille du widget pour une largeur ou une hauteur donnée, vous pouvez fournir la dimension fixe dans constraint. Cela est utile pour les widgets qui ne peuvent croître que verticalement ou horizontalement et qui doivent fixer leur largeur ou leur hauteur à une valeur spéciale.
Par exemple, un paragraphe de texte qui tient dans une colonne de 200 de large peut s'agrandir verticalement. Vous pouvez passer QSizeF(200, -1) comme contrainte pour obtenir une hauteur minimale, préférentielle et maximale appropriée.)
Vous pouvez ajuster l'indice 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 sizeHint() ne sera appelé qu'une seule fois pour chaque valeur de which - à moins que constraint ne soit pas spécifié et que updateGeometry() ait été appelé.
Voir aussi 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 fichier 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 ce QGraphicsLayoutItem. L'implémentation par défaut suppose 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 aussi QGraphicsWidget::setContentsMargins().
QGraphicsItem *QGraphicsLayoutItem::graphicsItem() const
Renvoie l'adresse QGraphicsItem que cet élément de mise en page représente. Pour QGraphicsWidget, il se renverra 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 n'a pas de contenu et ne doit pas occuper d'espace.
L'implémentation par défaut renvoie true true si l'élément a été caché, à moins que son size policy n'ait retainSizeWhenHidden fixé à true
Cette fonction a été introduite dans Qt 6.0.
Voir aussi sizePolicy().
bool QGraphicsLayoutItem::isLayout() const
Renvoie true si ce QGraphicsLayoutItem est une disposition (par exemple, s'il est hérité d'un objet qui dispose d'autres objets QGraphicsLayoutItem ) ; sinon, renvoie false.
Voir aussi QGraphicsLayout.
qreal QGraphicsLayoutItem::maximumHeight() const
Renvoie la hauteur maximale.
Voir aussi setMaximumHeight(), setMaximumSize() et maximumSize().
QSizeF QGraphicsLayoutItem::maximumSize() const
Renvoie la taille maximale.
Voir aussi 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 aussi setMinimumHeight(), setMinimumSize() et minimumSize().
QSizeF QGraphicsLayoutItem::minimumSize() const
Renvoie la taille minimale.
Voir aussi setMinimumSize(), preferredSize(), maximumSize(), Qt::MinimumSize, et sizeHint().
qreal QGraphicsLayoutItem::minimumWidth() const
Renvoie la largeur minimale.
Voir aussi setMinimumWidth(), setMinimumSize() et minimumSize().
bool QGraphicsLayoutItem::ownedByLayout() const
Retourne si une disposition doit supprimer cet élément dans son destructeur. Si true, la disposition le supprimera. Si c'est faux, il est supposé qu'un autre objet en a la propriété, et la disposition ne supprimera pas cet élément.
Si l'élément hérite à la fois de QGraphicsItem et de QGraphicsLayoutItem (comme c'est le cas pour QGraphicsWidget ), l'élément fait en réalité partie de deux hiérarchies de propriété. Cette propriété indique ce que la mise en page doit faire avec ses éléments enfants lorsqu'elle est détruite. Dans le cas de QGraphicsWidget, il est préférable que la disposition ne supprime pas ses enfants lorsqu'elle est supprimée (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 remplacée par QGraphicsLayout qui renvoie true. En effet, QGraphicsLayout ne fait normalement pas partie de la hiérarchie QGraphicsItem, et la disposition parentale doit donc la supprimer. Les sous-classes peuvent remplacer ce comportement par défaut en appelant setOwnedByLayout(true).
Voir aussi setOwnedByLayout().
QGraphicsLayoutItem *QGraphicsLayoutItem::parentLayoutItem() const
Renvoie le parent de ce 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é par héritage multiple avec des classes dérivées de QObject).
Voir aussi setParentLayoutItem().
qreal QGraphicsLayoutItem::preferredHeight() const
Renvoie la hauteur préférée.
Voir aussi setPreferredHeight(), setPreferredSize() et preferredSize().
QSizeF QGraphicsLayoutItem::preferredSize() const
Renvoie la taille préférée.
Voir aussi setPreferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize, et sizeHint().
qreal QGraphicsLayoutItem::preferredWidth() const
Renvoie la largeur préférée.
Voir aussi setPreferredWidth(), setPreferredSize() et preferredSize().
[virtual] void QGraphicsLayoutItem::setGeometry(const QRectF &rect)
Cette fonction virtuelle définit la géométrie de QGraphicsLayoutItem à rect, qui est en coordonnées parentales (par exemple, le coin supérieur gauche de rect est équivalent à la position de l'élément en coordonnées parentales).
Vous devez réimplémenter cette fonction dans une sous-classe de QGraphicsLayoutItem pour recevoir les mises à jour de la géométrie. La disposition appellera cette fonction lorsqu'elle procédera à un réarrangement.
Si rect se trouve en dehors des limites de minimumSize et maximumSize, il sera ajusté à sa taille la plus proche afin de rester dans les limites légales.
Voir aussi geometry().
[protected] void QGraphicsLayoutItem::setGraphicsItem(QGraphicsItem *item)
Si le site QGraphicsLayoutItem représente un site QGraphicsItem et qu'il souhaite bénéficier des capacités de reparentage automatique du site 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 d'avoir un pointeur qui traîne.
Voir aussi graphicsItem().
void QGraphicsLayoutItem::setMaximumHeight(qreal height)
Fixe la hauteur maximale à height.
Voir aussi maximumHeight(), setMaximumSize() et maximumSize().
void QGraphicsLayoutItem::setMaximumSize(const QSizeF &size)
Fixe la taille maximale à size. Cette propriété remplace sizeHint() pour Qt::MaximumSize et garantit que effectiveSizeHint() ne renverra jamais une taille supérieure à size. Pour désactiver la taille maximale, utilisez une taille non valide.
Voir aussi maximumSize(), minimumSize(), preferredSize(), Qt::MaximumSize et sizeHint().
void QGraphicsLayoutItem::setMaximumSize(qreal w, qreal h)
Cette fonction de commodité équivaut à appeler setMaximumSize(QSizeF(w, h)).
Voir aussi maximumSize(), setMinimumSize(), setPreferredSize() et sizeHint().
void QGraphicsLayoutItem::setMaximumWidth(qreal width)
Fixe la largeur maximale à width.
Voir aussi maximumWidth(), setMaximumSize() et maximumSize().
void QGraphicsLayoutItem::setMinimumHeight(qreal height)
Fixe la hauteur minimale à height.
Voir aussi minimumHeight(), setMinimumSize() et minimumSize().
void QGraphicsLayoutItem::setMinimumSize(const QSizeF &size)
Fixe la taille minimale à size. Cette propriété remplace sizeHint() pour Qt::MinimumSize et garantit que effectiveSizeHint() ne renverra jamais une taille inférieure à size. Pour désactiver la taille minimale, utilisez une taille non valide.
Voir aussi minimumSize(), maximumSize(), preferredSize(), Qt::MinimumSize, sizeHint(), setMinimumWidth() et setMinimumHeight().
void QGraphicsLayoutItem::setMinimumSize(qreal w, qreal h)
Cette fonction de commodité équivaut à appeler setMinimumSize(QSizeF(w, h)).
Voir aussi minimumSize(), setMaximumSize(), setPreferredSize() et sizeHint().
void QGraphicsLayoutItem::setMinimumWidth(qreal width)
Fixe la largeur minimale à width.
Voir aussi minimumWidth(), setMinimumSize() et minimumSize().
[protected] void QGraphicsLayoutItem::setOwnedByLayout(bool ownership)
Définit si une disposition doit supprimer cet élément dans son destructeur ou non. ownership doit être vrai pour que la disposition le supprime.
Voir également ownedByLayout().
void QGraphicsLayoutItem::setParentLayoutItem(QGraphicsLayoutItem *parent)
Définit le parent de ce QGraphicsLayoutItem à parent.
Voir aussi parentLayoutItem().
void QGraphicsLayoutItem::setPreferredHeight(qreal height)
Fixe la hauteur préférée à height.
Voir aussi preferredHeight(), preferredWidth(), setPreferredSize() et preferredSize().
void QGraphicsLayoutItem::setPreferredSize(const QSizeF &size)
Fixe la taille préférée à size. Cette propriété remplace sizeHint() pour Qt::PreferredSize et fournit la valeur par défaut pour effectiveSizeHint(). Pour désactiver la taille préférée, il faut utiliser une taille non valide.
Voir également preferredSize(), minimumSize(), maximumSize(), Qt::PreferredSize et sizeHint().
void QGraphicsLayoutItem::setPreferredSize(qreal w, qreal h)
Cette fonction de commodité équivaut à appeler setPreferredSize(QSizeF(w, h)).
Voir aussi preferredSize(), setMaximumSize(), setMinimumSize() et sizeHint().
void QGraphicsLayoutItem::setPreferredWidth(qreal width)
Fixe la largeur préférée à width.
Voir aussi preferredWidth(), preferredHeight(), setPreferredSize() et preferredSize().
void QGraphicsLayoutItem::setSizePolicy(const QSizePolicy &policy)
Définit la politique de taille à policy. La politique de taille décrit comment l'élément doit s'agrandir horizontalement et verticalement lorsqu'il est disposé dans une mise en page.
QGraphicsLayoutItemPar défaut, la politique de taille de la bibliothèque est (QSizePolicy::Fixed, QSizePolicy::Fixed, QSizePolicy::DefaultType), mais il est courant que les sous-classes modifient la valeur par défaut. Par exemple, la valeur par défaut de QGraphicsWidget est (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 aussi sizePolicy() et QWidget::sizePolicy().
[pure virtual protected] QSizeF QGraphicsLayoutItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const
Cette fonction virtuelle pure renvoie l'indice de taille pour which de QGraphicsLayoutItem, en utilisant la largeur ou la hauteur de constraint pour limiter la sortie.
Réimplémentez cette fonction dans une sous-classe de QGraphicsLayoutItem pour fournir les indications de taille nécessaires à vos articles.
Voir aussi effectiveSizeHint().
QSizePolicy QGraphicsLayoutItem::sizePolicy() const
Renvoie la politique de taille actuelle.
Voir aussi setSizePolicy() et QWidget::sizePolicy().
[virtual] void QGraphicsLayoutItem::updateGeometry()
Cette fonction virtuelle supprime 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.