Sur cette page

FlexboxLayout QML Type

La construction QML « FlexboxLayout » permet de créer une mise en page flexible pour les éléments rapides. En savoir plus…

Import Statement: import QtQuick.Layouts
Since: Qt 6.10
Inherits:

Item

Status: Technology preview

Ce type est en préversion technologique et est susceptible d'être modifié.

Propriétés

Propriétés associées

Description détaillée

FlexboxLayout permet de disposer les éléments de manière flexible, à l'instar de la mise en page CSS Flexible Box Layout. En interne, Qt FlexboxLayout utilise le moteur Yoga pour déterminer la géométrie des éléments flexibles. La bibliothèque yoga est un sous-ensemble de la mise en page CSS Flexible Box. Par conséquent, FlexboxLayout peut se limiter aux fonctionnalités prises en charge par la bibliothèque yoga.

Remarque : FlexboxLayout s'appuie sur la version 2.0 de la bibliothèque yoga pour ses fonctionnalités.

Les éléments contenus dans le FlexboxLayout peuvent être configurés avec des tailles préférées, minimales et maximales via les propriétés associées à la mise en page existantes. Par exemple, si un élément du FlexboxLayout doit être étiré, il est possible de définir la propriété associée à la mise en page « Layout.fillWidth » ou « Layout.fillHeight ».

Les éléments d’un FlexboxLayout prennent en charge les propriétés associées suivantes :

Pour en savoir plus sur les propriétés associées, cliquez ici.

Pour utiliser ce type de manière plus efficace, il est recommandé de bien comprendre le fonctionnement général du module « Qt Quick Layouts ». Reportez-vous à la présentation d’Qt Quick Layouts pour plus d’informations.

Exemple d'utilisation

L'extrait de code suivant présente un exemple minimaliste d'utilisation de QML FlexboxLayout pour organiser les éléments rectangulaires de manière plus flexible

FlexboxLayout {
    id: flexLayout
    anchors.fill: parent
    wrap: FlexboxLayout.Wrap
    direction: FlexboxLayout.Row
    justifyContent: FlexboxLayout.JustifySpaceAround
    Rectangle {
        color: 'teal'
        implicitWidth: 200
        implicitHeight: 200
    }
    Rectangle {
        color: 'plum'
        implicitWidth: 200
        implicitHeight: 200
    }
    Rectangle {
        color: 'olive'
        implicitWidth: 200
        implicitHeight: 200
    }
    Rectangle {
        color: 'beige'
        implicitWidth: 200
        implicitHeight: 200
    }
    Rectangle {
        color: 'darkseagreen'
        implicitWidth: 200
        implicitHeight: 200
    }
}

Remarque : cette API est considérée comme une préversion technique et est susceptible d’être modifiée ou supprimée dans les futures versions de Qt.

Voir également ColumnLayout, GridLayout, RowLayout, StackView et la présentation deQt Quick Layouts .

Documentation sur les propriétés

alignContent : enumeration

Cette propriété définit la répartition des lignes de flex le long de l 'axe transversal de la mise en page Flexbox.

Valeurs possibles :

ConstanteDescription
FlexboxLayout.AlignStartLes lignes flex sont alignées sur le début de la mise en page de la boîte flex.
FlexboxLayout.AlignCenterLes lignes flex sont alignées au centre de la mise en page de la boîte flex.
FlexboxLayout.AlignEndLes lignes flex sont alignées sur la fin de la mise en page de la boîte flex.
FlexboxLayout.AlignStretch(par défaut) Les lignes Flex sont étirées en fonction de la hauteur de la mise en page Flexbox.
FlexboxLayout.AlignSpaceBetweenLes espaces sont répartis uniformément entre les lignes et il n'y a pas d'espace le long des bords de la mise en page Flexbox.
FlexboxLayout.AlignSpaceAroundLes espaces sont répartis uniformément entre les lignes et un espace de moitié de taille est laissé sur les bords de la mise en page Flexbox.
FlexboxLayout.AlignSpaceEvenlyLes espaces sont répartis uniformément entre les lignes et les bords de la mise en page de la boîte Flex. Non pris en charge dans Qt 6.10.

La valeur par défaut est ` FlexboxLayout.AlignStart`.

alignItems : enumeration

Cette propriété spécifie l'alignement des éléments au sein des lignes flexibles de la mise en page « flex box » ; elle s'effectue le long de l'axe transversal (orthogonal à l'axe principal, tel que défini par la propriété ` direction`). Cette propriété peut être redéfinie par les éléments de la mise en page « flex box » via la propriété associée ` FlexboxLayout.alignSelf`.

Valeurs possibles :

ConstanteDescription
FlexboxLayout.AlignStart(par défaut) Les éléments sont alignés sur le début de l’axe transversal de la mise en page en boîte flexible.
FlexboxLayout.AlignCenterLes éléments sont alignés au centre de l’axe transversal de la mise en page Flexbox.
FlexboxLayout.AlignEndLes éléments sont alignés sur la fin de l'axe transversal de la mise en page Flexbox.

Remarque : les alignements mentionnés dans les valeurs possibles ne s'appliquent qu'à la propriété alignItems.

La valeur par défaut est « FlexboxLayout.AlignStart ».

columnGap : real

Cette propriété définit l'espace à appliquer à l'élément ` FlexboxLayout ` le long de l'axe inline. La définition de cette propriété remplace la valeur de ` gap ` affectant l'axe inline.

La valeur par défaut est « 0 ».

direction : enumeration

Cette propriété détermine le sens de disposition des éléments au sein de la mise en page Flexbox et définit l'axe principal.

Valeurs possibles :

ConstanteDescription
FlexboxLayout.Row(par défaut) Les éléments sont disposés de gauche à droite.
FlexboxLayout.RowReversedLes éléments sont disposés de droite à gauche.
FlexboxLayout.ColumnLes éléments sont disposés de haut en bas.
FlexboxLayout.ColumnReversedLes éléments sont disposés de bas en haut.

La valeur par défaut est « FlexboxLayout.Row ».

gap : real

Cette propriété définit l'espace à attribuer à l'élément ` FlexboxLayout `, tant sur l'axe « inline » que sur l'axe « block ».

La valeur par défaut est « 0 ».

justifyContent : enumeration

Cette propriété définit la répartition des éléments le long de l'axe principal de la mise en page Flexbox.

Valeurs possibles :

ConstanteDescription
FlexboxLayout.JustifyStart(par défaut) Les éléments sont alignés au début de la mise en page Flexbox.
FlexboxLayout.JustifyCenterLes éléments sont alignés au centre de la mise en page Flexbox.
FlexboxLayout.JustifyEndLes éléments sont alignés à la fin de la mise en page de la boîte flexible.
FlexboxLayout.JustifySpaceBetweenLes espaces sont répartis uniformément entre les éléments et il n'y a pas d'espace le long des bords de la mise en page Flexbox.
FlexboxLayout.JustifySpaceAroundLes espaces sont répartis uniformément entre les éléments et un espace de moitié de la taille est laissé sur les bords de la mise en page Flexbox.
FlexboxLayout.JustiftSpaceEvenlyLes espaces sont répartis de manière uniforme entre les éléments et les bords de la mise en page Flexbox.

La valeur par défaut est « FlexboxLayout.JustifyStart ».

rowGap : real

Cette propriété définit l'espace à appliquer à l'FlexboxLayout e le long de l'axe du bloc. La définition de cette propriété remplace la valeur de la propriété « gap » affectant l'axe du bloc.

La valeur par défaut est « 0 ».

wrap : enumeration

Cette propriété spécifie si les éléments d'une mise en page Flexbox peuvent ou non être répartis sur plusieurs lignes ; cela se produit lorsque la taille des éléments enfants dépasse celle de la mise en page Flexbox. Si les éléments sont répartis sur plusieurs lignes, ils seront placés sur plusieurs lignes en fonction de la condition de débordement indiquée. Chaque ligne occupe la taille maximale de l'élément le long de l'axe transversal.

Valeurs possibles :

ConstanteDescription
FlexboxLayout.WrapLes éléments sont répartis sur plusieurs lignes au sein de la mise en page Flexbox.
FlexboxLayout.NoWrap(par défaut) Les éléments ne sont pas répartis sur plusieurs lignes et sont disposés sur une seule ligne au sein de la mise en page Flexbox.
FlexboxLayout.WrapReverseLes éléments sont répartis sur plusieurs lignes dans la mise en page Flexbox, dans le sens inverse.

La valeur par défaut est « FlexboxLayout.NoWrap ».

Documentation sur les propriétés associées

FlexboxLayout.alignSelf : enumeration [attached]

Cette propriété associée permet d'aligner cet élément dans la mise en page Flexbox le long de l'axe transversal et remplace la propriété de mise en page Flexbox du parent « alignItems ».

Par défaut, l’élément enfant hérite de l’alignement de son parent et peut remplacer la propriété de mise en page Flexbox du parent ` alignItems ` avec les valeurs ` FlexboxLayout.AlignStart`, ` FlexboxLayout.AlignCenter ` et ` FlexboxLayout.AlignEnd`.

La valeur par défaut est « FlexboxLayout.AlignAuto ».

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