QLayoutItem Class
La classe `QLayoutItem` fournit un élément abstrait que le gestionnaire de disposition (` QLayout `) manipule. En savoir plus...
| En-tête : | #include <QLayoutItem> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérité par : |
Fonctions publiques
| QLayoutItem(Qt::Alignment alignment = Qt::Alignment()) | |
| virtual | ~QLayoutItem() |
| Qt::Alignment | alignment() const |
| virtual QSizePolicy::ControlTypes | controlTypes() const |
| virtual Qt::Orientations | expandingDirections() const = 0 |
| virtual QRect | geometry() const = 0 |
| virtual bool | hasHeightForWidth() const |
| virtual int | heightForWidth(int) const |
| virtual void | invalidate() |
| virtual bool | isEmpty() const = 0 |
| virtual QLayout * | layout() |
| virtual QSize | maximumSize() const = 0 |
| virtual int | minimumHeightForWidth(int w) const |
| virtual QSize | minimumSize() const = 0 |
| void | setAlignment(Qt::Alignment alignment) |
| virtual void | setGeometry(const QRect &r) = 0 |
| virtual QSize | sizeHint() const = 0 |
| virtual QSpacerItem * | spacerItem() |
| virtual QWidget * | widget() const |
Description détaillée
Cette fonction est utilisée par les mises en page personnalisées.
Des fonctions virtuelles pures sont fournies pour renvoyer des informations sur la disposition, notamment : sizeHint(), minimumSize(), maximumSize() et expandingDirections().
La géométrie de la mise en page peut être définie et récupérée à l’aide de setGeometry() et geometry(), et son alignement à l’aide de setAlignment() et alignment().
isEmpty() indique si l'élément de la disposition est vide. Si l'élément concret est un QWidget, il peut être récupéré à l'aide de widget(). Il en va de même pour layout() et spacerItem().
Certaines mises en page présentent des interdépendances entre la largeur et la hauteur. Celles-ci peuvent être exprimées à l’aide de hasHeightForWidth(), heightForWidth() et minimumHeightForWidth(). Pour plus d’explications, consultez l’article du Qt Quarterly intitulé « Trading Height for Width ».
Voir également QLayout.
Documentation des fonctions membres
[explicit] QLayoutItem::QLayoutItem(Qt::Alignment alignment = Qt::Alignment())
Crée un élément de mise en page avec un alignement « alignment ». Toutes les sous-classes ne prennent pas en charge l'alignement.
[virtual noexcept] QLayoutItem::~QLayoutItem()
Supprime l'QLayoutItem.
Qt::Alignment QLayoutItem::alignment() const
Renvoie l'alignement de cet élément.
Voir aussi setAlignment().
[virtual] QSizePolicy::ControlTypes QLayoutItem::controlTypes() const
Renvoie le ou les types de contrôle associés à l'élément de mise en page. Pour un QWidgetItem, le type de contrôle provient de la politique de taille du widget ; pour un QLayoutItem, le type de contrôle est dérivé du contenu de la mise en page.
Voir également QSizePolicy::controlType().
[pure virtual] Qt::Orientations QLayoutItem::expandingDirections() const
Indique si cet élément de mise en page peut occuper plus d'espace que sizeHint(). Une valeur de type Qt::Vertical ou Qt::Horizontal signifie qu'il ne peut s'étendre que dans une seule dimension, tandis qu'une valeur de type Qt::Vertical | Qt::Horizontal signifie qu'il peut s'étendre dans les deux dimensions.
[pure virtual] QRect QLayoutItem::geometry() const
Renvoie le rectangle délimité par cet élément de mise en page.
Voir également setGeometry().
[virtual] bool QLayoutItem::hasHeightForWidth() const
Renvoie « true » si la hauteur préférée de cette mise en page dépend de sa largeur ; sinon, renvoie « false ». L'implémentation par défaut renvoie « false ».
Réimplémentez cette fonction dans les gestionnaires de mise en page qui prennent en charge la hauteur en fonction de la largeur.
Voir également heightForWidth() et QWidget::heightForWidth().
[virtual] int QLayoutItem::heightForWidth(int) const
Renvoie la hauteur préférée pour cet élément de mise en page, compte tenu de sa largeur, qui n'est pas prise en compte dans cette implémentation par défaut.
L'implémentation par défaut renvoie -1, ce qui indique que la hauteur préférée est indépendante de la largeur de l'élément. L'utilisation de la fonction hasHeightForWidth() sera généralement beaucoup plus rapide que d'appeler cette fonction et de vérifier si elle renvoie -1.
Réimplémentez cette fonction dans les gestionnaires de mise en page qui prennent en charge la hauteur en fonction de la largeur. Une implémentation type ressemblera à ceci :
int MyLayout::heightForWidth(int w) const
{
if (cache_dirty || cached_width != w) {
MyLayout *that = const_cast<MyLayout *>(this);
int h = calculateHeightForWidth(w);
that->cached_hfw = h;
return h;
}
return cached_hfw;
}La mise en cache est fortement recommandée ; sans elle, la mise en page prendra un temps exponentiel.
Voir également hasHeightForWidth().
[virtual] void QLayoutItem::invalidate()
Annule toutes les informations mises en cache dans cet élément de mise en page.
[pure virtual] bool QLayoutItem::isEmpty() const
Mise en œuvre dans les sous-classes pour indiquer si cet élément est vide, c'est-à-dire s'il contient des widgets.
[virtual] QLayout *QLayoutItem::layout()
Si cet élément est de type ` QLayout`, il est renvoyé sous la forme ` QLayout` ; dans le cas contraire, ` nullptr ` est renvoyé. Cette fonction assure une conversion de type sécurisée.
Voir également spacerItem() et widget().
[pure virtual] QSize QLayoutItem::maximumSize() const
À implémenter dans les sous-classes pour renvoyer la taille maximale de cet élément.
[virtual] int QLayoutItem::minimumHeightForWidth(int w) const
Renvoie la hauteur minimale dont ce widget a besoin pour la largeur donnée, w. L'implémentation par défaut renvoie simplement heightForWidth(w).
[pure virtual] QSize QLayoutItem::minimumSize() const
À implémenter dans les sous-classes pour renvoyer la taille minimale de cet élément.
void QLayoutItem::setAlignment(Qt::Alignment alignment)
Définit l'alignement de cet élément sur « alignment ».
Remarque : l’alignement des éléments n’est pris en charge que par les sous-classes de ` QLayoutItem ` pour lesquelles il a un effet visuel. À l’exception de ` QSpacerItem`, qui fournit un espace vide pour les mises en page, toutes les classes Qt publiques héritant de ` QLayoutItem ` prennent en charge l’alignement des éléments.
Voir également alignment().
[pure virtual] void QLayoutItem::setGeometry(const QRect &r)
À implémenter dans les sous-classes pour définir la géométrie de cet élément sur r.
Voir également geometry().
[pure virtual] QSize QLayoutItem::sizeHint() const
À implémenter dans les sous-classes pour renvoyer la taille préférée de cet élément.
[virtual] QSpacerItem *QLayoutItem::spacerItem()
Si cet élément est de type ` QSpacerItem`, il est renvoyé sous la forme ` QSpacerItem` ; sinon, ` nullptr ` est renvoyé. Cette fonction assure une conversion de type sécurisée.
Voir également layout() et widget().
[virtual] QWidget *QLayoutItem::widget() const
Si cet élément gère un QWidget, cette fonction renvoie ce widget. Sinon, elle renvoie nullptr.
Remarque : alors que les fonctions layout() et spacerItem() effectuent des conversions de type, cette fonction renvoie un autre objet : QLayout et QSpacerItem héritent de QLayoutItem, contrairement à QWidget.
Voir également layout() et spacerItem().
© 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.