Sur cette page

QFormLayout Class

La classe QFormLayout gère les formulaires composés de widgets de saisie et de leurs étiquettes associées. En savoir plus…

En-tête : #include <QFormLayout>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Hérite de : QLayout

Types publics

struct TakeRowResult
enum FieldGrowthPolicy { FieldsStayAtSizeHint, ExpandingFieldsGrow, AllNonFixedFieldsGrow }
enum ItemRole { LabelRole, FieldRole, SpanningRole }
enum RowWrapPolicy { DontWrapRows, WrapLongRows, WrapAllRows }

Propriétés

Fonctions publiques

QFormLayout(QWidget *parent = nullptr)
virtual ~QFormLayout()
void addRow(QWidget *label, QWidget *field)
void addRow(QLayout *layout)
void addRow(QWidget *widget)
void addRow(QWidget *label, QLayout *field)
void addRow(const QString &labelText, QLayout *field)
void addRow(const QString &labelText, QWidget *field)
QFormLayout::FieldGrowthPolicy fieldGrowthPolicy() const
Qt::Alignment formAlignment() const
void getItemPosition(int index, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
void getLayoutPosition(QLayout *layout, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
void getWidgetPosition(QWidget *widget, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
int horizontalSpacing() const
void insertRow(int row, QWidget *label, QWidget *field)
void insertRow(int row, QLayout *layout)
void insertRow(int row, QWidget *widget)
void insertRow(int row, QWidget *label, QLayout *field)
void insertRow(int row, const QString &labelText, QLayout *field)
void insertRow(int row, const QString &labelText, QWidget *field)
(since 6.4) bool isRowVisible(int row) const
(since 6.4) bool isRowVisible(QLayout *layout) const
(since 6.4) bool isRowVisible(QWidget *widget) const
QLayoutItem *itemAt(int row, QFormLayout::ItemRole role) const
Qt::Alignment labelAlignment() const
QWidget *labelForField(QWidget *field) const
QWidget *labelForField(QLayout *field) const
void removeRow(int row)
void removeRow(QLayout *layout)
void removeRow(QWidget *widget)
int rowCount() const
QFormLayout::RowWrapPolicy rowWrapPolicy() const
void setFieldGrowthPolicy(QFormLayout::FieldGrowthPolicy policy)
void setFormAlignment(Qt::Alignment alignment)
void setHorizontalSpacing(int spacing)
void setItem(int row, QFormLayout::ItemRole role, QLayoutItem *item)
void setLabelAlignment(Qt::Alignment alignment)
void setLayout(int row, QFormLayout::ItemRole role, QLayout *layout)
(since 6.4) void setRowVisible(int row, bool on)
(since 6.4) void setRowVisible(QLayout *layout, bool on)
(since 6.4) void setRowVisible(QWidget *widget, bool on)
void setRowWrapPolicy(QFormLayout::RowWrapPolicy policy)
void setVerticalSpacing(int spacing)
void setWidget(int row, QFormLayout::ItemRole role, QWidget *widget)
QFormLayout::TakeRowResult takeRow(int row)
QFormLayout::TakeRowResult takeRow(QLayout *layout)
QFormLayout::TakeRowResult takeRow(QWidget *widget)
int verticalSpacing() const

Fonctions publiques réimplémentées

virtual void addItem(QLayoutItem *item) override
virtual int count() const override
virtual Qt::Orientations expandingDirections() const override
virtual bool hasHeightForWidth() const override
virtual int heightForWidth(int width) const override
virtual void invalidate() override
virtual QLayoutItem *itemAt(int index) const override
virtual QSize minimumSize() const override
virtual void setGeometry(const QRect &rect) override
virtual void setSpacing(int spacing) override
virtual QSize sizeHint() const override
virtual int spacing() const override
virtual QLayoutItem *takeAt(int index) override

Description détaillée

QFormLayout est une classe de mise en page pratique qui organise ses éléments enfants sous la forme d'un formulaire à deux colonnes. La colonne de gauche contient des étiquettes et celle de droite des widgets de « champ » (éditeurs de ligne, zones de sélection, etc.).

Traditionnellement, ces mises en page à deux colonnes étaient réalisées à l'aide de ` QGridLayout`. `QFormLayout` est une alternative de plus haut niveau qui offre les avantages suivants :

  • Respect des directives de présentation propres à chaque plateforme.

    Par exemple, les directives Aqua de macOS et KDE spécifient que les étiquettes doivent être alignées à droite, alors que les applications Windows et GNOME utilisent généralement l'alignement à gauche.

  • Prise en charge du retour à la ligne pour les lignes longues.

    Pour les appareils dotés de petits écrans, QFormLayout peut être configuré sur « wrap long rows » (alignement à gauche), voire sur « wrap all rows » (alignement à droite).

  • API pratique pour créer des paires étiquette-champ.

    La surcharge de la méthode ` addRow()` qui prend un ` QString ` et un ` QWidget *` crée en arrière-plan un ` QLabel ` et configure automatiquement son partenaire. On peut alors écrire du code comme celui-ci :

    QFormLayout *formLayout = new QFormLayout(this);
    formLayout->addRow(tr("&Name:"), nameLineEdit);
    formLayout->addRow(tr("&Email:"), emailLineEdit);
    formLayout->addRow(tr("&Age:"), ageSpinBox);

    Comparez cela avec le code suivant, écrit à l’aide de ` QGridLayout` :

    QGridLayout *gridLayout = new QGridLayout(this);
    
    nameLabel = new QLabel(tr("&Name:"));
    nameLabel->setBuddy(nameLineEdit);
    
    emailLabel = new QLabel(tr("&Name:"));
    emailLabel->setBuddy(emailLineEdit);
    
    ageLabel = new QLabel(tr("&Name:"));
    ageLabel->setBuddy(ageSpinBox);
    
    gridLayout->addWidget(nameLabel, 0, 0);
    gridLayout->addWidget(nameLineEdit, 0, 1);
    gridLayout->addWidget(emailLabel, 1, 0);
    gridLayout->addWidget(emailLineEdit, 1, 1);
    gridLayout->addWidget(ageLabel, 2, 0);
    gridLayout->addWidget(ageSpinBox, 2, 1);

Le tableau ci-dessous présente l'apparence par défaut dans différents styles.

QCommonStyle styles dérivés (à l'exception de QPlastiqueStyle)QMacStyleQPlastiqueStyleStyles Qt Extended
Mise en page du formulaire dans le style classique des ordinateurs de bureauMise en page du formulaire dans le style Aqua de macOSMise en page du formulaire dans le style KDE PlastiqueMise en page du formulaire dans le style Qt Extended
Style traditionnel utilisé pour Windows, GNOME et les anciennes versions de KDE. Les libellés sont alignés à gauche et les champs extensibles s’agrandissent pour remplir l’espace disponible. (Cela correspond généralement au résultat obtenu en utilisant une QGridLayout à deux colonnes.)Style basé sur les directives Aqua de macOS. Les libellés sont alignés à droite, les champs ne s'étendent pas au-delà de leur taille indiquée et le formulaire est centré horizontalement.Style recommandé pour les applications KDE. Similaire au style MacStyle, à l’exception du fait que le formulaire est aligné à gauche et que tous les champs s’étendent pour remplir l’espace disponible.Style par défaut pour les styles Qt Extended. Les libellés sont alignés à droite, les champs extensibles s'étendent pour remplir l'espace disponible et le retour à la ligne est activé pour les lignes longues.

Les styles de formulaire peuvent également être redéfinis individuellement en appelant les fonctions ` setLabelAlignment()`, ` setFormAlignment()`, ` setFieldGrowthPolicy()` et ` setRowWrapPolicy()`. Par exemple, pour simuler l’apparence de la mise en page du formulaire de `QMacStyle` sur toutes les plateformes, mais avec des libellés alignés à gauche, vous pourriez écrire :

formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows);
formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint);
formLayout->setFormAlignment(Qt::AlignHCenter | Qt::AlignTop);
formLayout->setLabelAlignment(Qt::AlignLeft);

Voir également QGridLayout, QBoxLayout et QStackedLayout.

Documentation sur les types de membres

enum QFormLayout::FieldGrowthPolicy

Cette énumération définit les différentes règles permettant de contrôler la manière dont les champs du formulaire s'agrandissent.

ConstanteValeurDescription
QFormLayout::FieldsStayAtSizeHint0Les champs ne dépassent jamais leur effective size hint. Il s'agit de la valeur par défaut pour QMacStyle.
QFormLayout::ExpandingFieldsGrow1Les champs dont l’ size policy e horizontale est définie sur Expanding ou MinimumExpanding s’étendent pour remplir l’espace disponible. Les autres champs ne dépassent pas leur taille effective. Il s’agit de la politique par défaut de Plastique.
QFormLayout::AllNonFixedFieldsGrow2Tous les champs dont la politique de taille autorise l'extension s'étireront pour occuper tout l'espace disponible. Il s'agit de la politique par défaut pour la plupart des styles.

Voir également fieldGrowthPolicy.

enum QFormLayout::ItemRole

Cette énumération spécifie les types de widgets (ou autres éléments de mise en page) pouvant apparaître dans une ligne.

ConstanteValeurDescription
QFormLayout::LabelRole0Un widget d'étiquette.
QFormLayout::FieldRole1Un widget de champ.
QFormLayout::SpanningRole2Un widget qui s'étend sur les colonnes d'étiquettes et de champs.

Voir également itemAt() et getItemPosition().

enum QFormLayout::RowWrapPolicy

Cette énumération définit les différentes règles pouvant être utilisées pour contrôler le comportement de retour à la ligne des lignes du formulaire.

ConstanteValeurDescription
QFormLayout::DontWrapRows0Les champs sont toujours placés à côté de leur étiquette. Il s'agit de la règle par défaut pour tous les styles, à l'exception des styles Qt Extended.
QFormLayout::WrapLongRows1Les étiquettes disposent d'un espace horizontal suffisant pour s'adapter à l'étiquette la plus large, le reste de l'espace étant attribué aux champs. Si la taille minimale d'une paire de champs est supérieure à l'espace disponible, le champ est renvoyé à la ligne suivante. Il s'agit de la règle par défaut pour les styles Qt Extended.
QFormLayout::WrapAllRows2Les champs sont toujours disposés sous leur étiquette.

Voir aussi rowWrapPolicy.

Documentation sur les propriétés

fieldGrowthPolicy : FieldGrowthPolicy

Cette propriété définit la manière dont les champs du formulaire s'agrandissent

La valeur par défaut dépend du style du widget ou de l'application. Pour QMacStyle, la valeur par défaut est FieldsStayAtSizeHint; pour les styles dérivés d'QCommonStyle (tels que Plastique et Windows), la valeur par défaut est ExpandingFieldsGrow; pour les styles Qt Extended, la valeur par défaut est AllNonFixedFieldsGrow.

Si aucun des champs ne peut s’étendre et que le formulaire est redimensionné, l’espace supplémentaire est réparti en fonction de la valeur actuelle de form alignment.

Fonctions d’accès :

QFormLayout::FieldGrowthPolicy fieldGrowthPolicy() const
void setFieldGrowthPolicy(QFormLayout::FieldGrowthPolicy policy)

Voir également formAlignment et rowWrapPolicy.

formAlignment : Qt::Alignment

Cette propriété définit l'alignement du contenu de la mise en page du formulaire au sein de la géométrie de cette mise en page

La valeur par défaut dépend du widget ou du style de l'application. Pour QMacStyle, la valeur par défaut est Qt::AlignHCenter | Qt::AlignTop; pour les autres styles, la valeur par défaut est Qt::AlignLeft | Qt::AlignTop.

Fonctions d'accès :

Qt::Alignment formAlignment() const
void setFormAlignment(Qt::Alignment alignment)

Voir également labelAlignment et rowWrapPolicy.

horizontalSpacing : int

Cette propriété définit l'espacement entre les widgets disposés côte à côte

Par défaut, si aucune valeur n'est explicitement définie, l'espacement horizontal de la disposition est hérité de la disposition parente ou des paramètres de style du widget parent.

Fonctions d’accès :

int horizontalSpacing() const
void setHorizontalSpacing(int spacing)

Voir également verticalSpacing, QStyle::pixelMetric() et PM_LayoutHorizontalSpacing.

labelAlignment : Qt::Alignment

Cette propriété définit l'alignement horizontal des étiquettes

La valeur par défaut dépend du widget ou du style de l'application. Pour les styles dérivés de ` QCommonStyle `, à l'exception de `QPlastiqueStyle`, la valeur par défaut est ` Qt::AlignLeft` ; pour les autres styles, la valeur par défaut est ` Qt::AlignRight`.

Fonctions d'accès :

Qt::Alignment labelAlignment() const
void setLabelAlignment(Qt::Alignment alignment)

Voir aussi formAlignment.

rowWrapPolicy : RowWrapPolicy

Cette propriété définit la manière dont les lignes du formulaire s'ajustent

La valeur par défaut dépend du style du widget ou de l'application. Pour les styles Qt Extended, la valeur par défaut est « WrapLongRows » ; pour les autres styles, la valeur par défaut est « DontWrapRows ».

Si vous souhaitez afficher chaque étiquette au-dessus du champ associé (plutôt qu’à côté), définissez cette propriété sur « WrapAllRows ».

Fonctions d'accès :

QFormLayout::RowWrapPolicy rowWrapPolicy() const
void setRowWrapPolicy(QFormLayout::RowWrapPolicy policy)

Voir également fieldGrowthPolicy.

verticalSpacing : int

Cette propriété définit l'espacement entre les widgets disposés verticalement

Par défaut, si aucune valeur n'est explicitement définie, l'espacement vertical de la disposition est hérité de la disposition parente ou des paramètres de style du widget parent.

Fonctions d'accès :

int verticalSpacing() const
void setVerticalSpacing(int spacing)

Voir également horizontalSpacing, QStyle::pixelMetric() et PM_LayoutHorizontalSpacing.

Documentation des fonctions membres

[explicit] QFormLayout::QFormLayout(QWidget *parent = nullptr)

Crée une nouvelle mise en page de formulaire à l'aide du widget « parent » spécifié.

La mise en page est définie directement comme mise en page de niveau supérieur pour ` parent`. Il ne peut y avoir qu'une seule mise en page de niveau supérieur pour un widget. Elle est renvoyée par la fonction ` QWidget::layout()`.

Voir aussi ` QWidget::setLayout()`

[virtual noexcept] QFormLayout::~QFormLayout()

Cela perturbe la mise en page du formulaire.

[override virtual] void QFormLayout::addItem(QLayoutItem *item)

Réimplémente : QLayout::addItem(QLayoutItem *item).

void QFormLayout::addRow(QWidget *label, QWidget *field)

Ajoute une nouvelle ligne au bas de cette mise en page de formulaire, avec les éléments label et field indiqués.

Voir également insertRow().

void QFormLayout::addRow(QLayout *layout)

Ajoute l'layout ion spécifiée à la fin de la mise en page de ce formulaire. L'layout ion s'étend sur les deux colonnes.

Il s'agit d'une fonction surchargée.

void QFormLayout::addRow(QWidget *widget)

Ajoute l'widget ion spécifiée à la fin de la mise en page de ce formulaire. L'widget ion s'étend sur les deux colonnes.

Il s'agit d'une fonction surchargée.

void QFormLayout::addRow(QWidget *label, QLayout *field)

Il s'agit d'une fonction surchargée.

void QFormLayout::addRow(const QString &labelText, QLayout *field)

Cette surcharge crée automatiquement, en arrière-plan, une ` QLabel ` dont le texte est « labelText ».

Il s’agit d’une fonction surchargée.

void QFormLayout::addRow(const QString &labelText, QWidget *field)

Cette surcharge crée automatiquement, en arrière-plan, une instance de ` QLabel ` dont le texte est ` labelText `. L'` field ` est définie comme la ` buddy` de la nouvelle ` QLabel`.

Il s’agit d’une fonction surchargée.

[override virtual] int QFormLayout::count() const

Réimplémente : QLayout::count() const.

[override virtual] Qt::Orientations QFormLayout::expandingDirections() const

Réimplémente : QLayout::expandingDirections() const.

void QFormLayout::getItemPosition(int index, int *rowPtr, QFormLayout::ItemRole *rolePtr) const

Récupère la ligne et le rôle (colonne) de l'élément situé à l'adresse spécifiée index. Si index est hors limites, *rowPtr est défini à -1 ; sinon, la ligne est stockée dans *rowPtr et le rôle dans *rolePtr.

Voir également itemAt(), count(), getLayoutPosition() et getWidgetPosition().

void QFormLayout::getLayoutPosition(QLayout *layout, int *rowPtr, QFormLayout::ItemRole *rolePtr) const

Récupère la ligne et le rôle (colonne) de l’ layout enfant spécifié. Si layout ne figure pas dans la mise en page du formulaire, *rowPtr est défini sur -1 ; dans le cas contraire, la ligne est stockée dans *rowPtr et le rôle dans *rolePtr.

void QFormLayout::getWidgetPosition(QWidget *widget, int *rowPtr, QFormLayout::ItemRole *rolePtr) const

Récupère la ligne et le rôle (colonne) de l'widget spécifié dans la mise en page. Si widget ne figure pas dans la mise en page, *rowPtr est défini sur -1 ; dans le cas contraire, la ligne est stockée dans *rowPtr et le rôle dans *rolePtr.

Voir également getItemPosition() et itemAt().

[override virtual] bool QFormLayout::hasHeightForWidth() const

Réimplémente : ` QLayoutItem::hasHeightForWidth()` const.

[override virtual] int QFormLayout::heightForWidth(int width) const

Réimplémente : ` QLayoutItem::heightForWidth(int) const`.

void QFormLayout::insertRow(int row, QWidget *label, QWidget *field)

Insère une nouvelle ligne à la position row dans cette mise en page de formulaire, avec les valeurs label et field indiquées. Si row est hors limites, la nouvelle ligne est ajoutée à la fin.

Voir également addRow().

void QFormLayout::insertRow(int row, QLayout *layout)

Insère l'layout spécifiée à la position row dans la mise en page de ce formulaire. L'layout s'étend sur les deux colonnes. Si row est hors limites, le widget est ajouté à la fin.

Il s'agit d'une fonction surchargée.

void QFormLayout::insertRow(int row, QWidget *widget)

Insère l'widget spécifiée à la position row dans cette mise en page de formulaire. L'widget s'étend sur les deux colonnes. Si row se trouve hors des limites, le widget est ajouté à la fin.

Il s'agit d'une fonction surchargée.

void QFormLayout::insertRow(int row, QWidget *label, QLayout *field)

Il s'agit d'une fonction surchargée.

void QFormLayout::insertRow(int row, const QString &labelText, QLayout *field)

Cette surcharge crée automatiquement, en arrière-plan, un fichier « QLabel » dont le texte est « labelText ».

Il s'agit d'une fonction surchargée.

void QFormLayout::insertRow(int row, const QString &labelText, QWidget *field)

Cette surcharge crée automatiquement, en arrière-plan, une instance de ` QLabel ` dont le texte est ` labelText `. L'` field ` est défini comme l'` buddy` de la nouvelle ` QLabel`.

Il s’agit d’une fonction surchargée.

[override virtual] void QFormLayout::invalidate()

Réimplémente : QLayout::invalidate().

[since 6.4] bool QFormLayout::isRowVisible(int row) const

Renvoie « true » si certains éléments de la ligne row sont visibles, sinon renvoie « false ».

Cette fonction a été introduite dans Qt 6.4.

[since 6.4] bool QFormLayout::isRowVisible(QLayout *layout) const

Renvoie « true » si certains éléments de la ligne correspondant à layout sont visibles, sinon renvoie « false ».

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.4.

[since 6.4] bool QFormLayout::isRowVisible(QWidget *widget) const

Renvoie « true » si certains éléments de la ligne correspondant à widget sont visibles, sinon renvoie « false ».

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.4.

[override virtual] QLayoutItem *QFormLayout::itemAt(int index) const

Réimplémente : ` QLayout::itemAt(int index) const`.

QLayoutItem *QFormLayout::itemAt(int row, QFormLayout::ItemRole role) const

Renvoie l'élément de mise en page présent dans l'row donné et correspondant à l'role (colonne) spécifiée. Renvoie « nullptr » si cet élément n'existe pas.

Voir également QLayout::itemAt() et setItem().

QWidget *QFormLayout::labelForField(QWidget *field) const

Renvoie le libellé associé à l'field donné.

Voir aussi itemAt().

QWidget *QFormLayout::labelForField(QLayout *field) const

Il s'agit d'une fonction surchargée.

[override virtual] QSize QFormLayout::minimumSize() const

Réimplémente : QLayout::minimumSize() const.

void QFormLayout::removeRow(int row)

Supprime la ligne row de cette mise en page de formulaire.

row La valeur doit être non négative et inférieure à rowCount().

Après cet appel, rowCount() est décrémenté d’une unité. Tous les widgets et mises en page imbriquées qui occupaient cette ligne sont supprimés. Cela inclut à la fois le ou les widgets de champ et l’étiquette, le cas échéant. Toutes les lignes suivantes sont décalées d’une ligne vers le haut et l’espace vertical libéré est redistribué entre les lignes restantes.

Vous pouvez utiliser cette fonction pour annuler un appel précédent à ` addRow()` ou ` insertRow()` :

QFormLayout *flay = ...;
QPointer<QLineEdit> le = new QLineEdit;
flay->insertRow(2, "User:", le);
// later:
flay->removeRow(2); // le == nullptr at this point

Si vous souhaitez supprimer la ligne de la mise en page sans supprimer les widgets, utilisez plutôt takeRow().

Voir également takeRow().

void QFormLayout::removeRow(QLayout *layout)

Supprime la ligne correspondant à layout de cette mise en page de formulaire.

Après cet appel, rowCount() est décrémenté d’une unité. Tous les widgets et mises en page imbriquées qui occupaient cette ligne sont supprimés. Cela inclut à la fois le ou les widgets de champ et l’étiquette, le cas échéant. Toutes les lignes suivantes sont décalées d’une ligne vers le haut et l’espace vertical libéré est redistribué entre les lignes restantes.

Vous pouvez utiliser cette fonction pour annuler un appel précédent à ` addRow()` ou ` insertRow()` :

QFormLayout *flay = ...;
QPointer<QVBoxLayout> vbl = new QVBoxLayout;
flay->insertRow(2, "User:", vbl);
// later:
flay->removeRow(layout); // vbl == nullptr at this point

Si vous souhaitez supprimer la ligne de la mise en page du formulaire sans supprimer la mise en page insérée, utilisez plutôt takeRow().

Il s’agit d’une fonction surchargée.

Voir également takeRow().

void QFormLayout::removeRow(QWidget *widget)

Supprime la ligne correspondant à widget de cette mise en page de formulaire.

Après cet appel, la valeur de rowCount() est décrémentée d’un. Tous les widgets et mises en page imbriquées qui occupaient cette ligne sont supprimés. Cela inclut à la fois le ou les widgets de champ et l’étiquette, le cas échéant. Toutes les lignes suivantes sont décalées d’une ligne vers le haut et l’espace vertical libéré est redistribué entre les lignes restantes.

Vous pouvez utiliser cette fonction pour annuler un appel précédent à ` addRow()` ou ` insertRow()` :

QFormLayout *flay = ...;
QPointer<QLineEdit> le = new QLineEdit;
flay->insertRow(2, "User:", le);
// later:
flay->removeRow(le); // le == nullptr at this point

Si vous souhaitez supprimer la ligne de la mise en page sans supprimer les widgets, utilisez plutôt takeRow().

Il s’agit d’une fonction surchargée.

Voir également takeRow().

int QFormLayout::rowCount() const

Renvoie le nombre de lignes du formulaire.

Voir aussi QLayout::count().

[override virtual] void QFormLayout::setGeometry(const QRect &rect)

Réimplémente : QLayout::setGeometry(const QRect &r).

void QFormLayout::setItem(int row, QFormLayout::ItemRole role, QLayoutItem *item)

Définit l'élément de l'row spécifiée pour l'role indiquée sur item, en ajoutant des lignes vides à la mise en page si nécessaire.

Si la cellule est déjà occupée, l’ item n’est pas insérée et un message d’erreur est envoyé à la console. L’ item s’étend sur les deux colonnes.

Avertissement : n’utilisez pas cette fonction pour ajouter des mises en page enfants ou des éléments de widget enfants. Utilisez plutôt setLayout() ou setWidget().

Voir également setLayout().

void QFormLayout::setLayout(int row, QFormLayout::ItemRole role, QLayout *layout)

Définit la sous-mise en page dans l'row indiquée pour l'role spécifiée sur layout, en étendant la mise en page du formulaire avec des lignes vides si nécessaire.

Si la cellule est déjà occupée, l’ layout n’est pas inséré et un message d’erreur est envoyé à la console.

Remarque : pour la plupart des applications, il est préférable d’utiliser ` addRow()` ou ` insertRow()` plutôt que `setLayout()`.

Voir également ` setWidget()`.

[since 6.4] void QFormLayout::setRowVisible(int row, bool on)

Affiche la ligne row si on est vrai ; sinon, masque la ligne.

row doit être non négatif et inférieur à rowCount().

Cette fonction a été introduite dans Qt 6.4.

Voir également isRowVisible(), removeRow() et takeRow().

[since 6.4] void QFormLayout::setRowVisible(QLayout *layout, bool on)

Affiche la ligne correspondant à layout si on est vrai ; sinon, masque la ligne.

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.4.

Voir également removeRow() et takeRow().

[since 6.4] void QFormLayout::setRowVisible(QWidget *widget, bool on)

Affiche la ligne correspondant à widget si on est vrai ; sinon, masque la ligne.

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.4.

Voir aussi removeRow() et takeRow().

[override virtual] void QFormLayout::setSpacing(int spacing)

Réimplémente une fonction d'accès pour la propriété : QLayout::spacing.

Cette fonction définit l'espacement vertical et horizontal sur spacing.

Voir également spacing(), setVerticalSpacing() et setHorizontalSpacing().

void QFormLayout::setWidget(int row, QFormLayout::ItemRole role, QWidget *widget)

Place le widget dans l'row spécifiée pour l'role spécifiée à l'adresse widget, en étendant la mise en page avec des lignes vides si nécessaire.

Si la cellule est déjà occupée, l’ widget n’est pas insérée et un message d’erreur est envoyé à la console.

Remarque : pour la plupart des applications, il est préférable d’utiliser ` addRow()` ou ` insertRow()` plutôt que `setWidget()`.

Voir aussi ` setLayout()`.

[override virtual] QSize QFormLayout::sizeHint() const

Réimplémente : QLayoutItem::sizeHint() const.

[override virtual] int QFormLayout::spacing() const

Réimplémente une fonction d'accès pour la propriété : QLayout::spacing.

Si l'espacement vertical est égal à l'espacement horizontal, cette fonction renvoie cette valeur ; sinon, elle renvoie -1.

Voir également setSpacing(), verticalSpacing() et horizontalSpacing().

[override virtual] QLayoutItem *QFormLayout::takeAt(int index)

Réimplémente : QLayout::takeAt(int index).

QFormLayout::TakeRowResult QFormLayout::takeRow(int row)

Supprime l'row spécifiée de la mise en page de ce formulaire.

row La valeur doit être non négative et inférieure à rowCount().

Remarque : cette fonction ne supprime rien.

Après cet appel, la valeur de ` rowCount()` est décrémentée d’une unité. Toutes les lignes suivantes sont décalées d’une ligne vers le haut et l’espace vertical libéré est redistribué entre les lignes restantes.

Vous pouvez utiliser cette fonction pour annuler un appel précédent à addRow() ou insertRow() :

QFormLayout *flay = ...;
QPointer<QLineEdit> le = new QLineEdit;
flay->insertRow(2, "User:", le);
// later:
QFormLayout::TakeRowResult result = flay->takeRow(2);

Si vous souhaitez supprimer la ligne de la mise en page et supprimer les widgets, utilisez plutôt ` removeRow()`.

Renvoie une structure contenant à la fois le widget et les éléments de mise en page de l'étiquette correspondante

Voir également removeRow().

QFormLayout::TakeRowResult QFormLayout::takeRow(QLayout *layout)

Supprime l'layout e spécifiée de cette mise en page de formulaire.

Remarque : cette fonction ne supprime rien.

Après cet appel, la valeur de ` rowCount()` est décrémentée d'une unité. Toutes les lignes suivantes sont décalées d'une ligne vers le haut et l'espace vertical libéré est redistribué entre les lignes restantes.

QFormLayout *flay = ...;
QPointer<QVBoxLayout> vbl = new QVBoxLayout;
flay->insertRow(2, "User:", vbl);
// later:
QFormLayout::TakeRowResult result = flay->takeRow(widget);

Si vous souhaitez supprimer la ligne de la mise en page du formulaire et effacer la mise en page insérée, utilisez plutôt removeRow().

Renvoie une structure contenant à la fois le widget et les éléments de mise en page d’étiquette correspondants

Il s’agit d’une fonction surchargée.

Voir également removeRow().

QFormLayout::TakeRowResult QFormLayout::takeRow(QWidget *widget)

Supprime l'widget spécifiée de cette mise en page de formulaire.

Remarque : cette fonction ne supprime rien.

Après cet appel, la valeur de ` rowCount()` est décrémentée d'une unité. Toutes les lignes suivantes sont décalées d'une ligne vers le haut et l'espace vertical libéré est redistribué entre les lignes restantes.

QFormLayout *flay = ...;
QPointer<QLineEdit> le = new QLineEdit;
flay->insertRow(2, "User:", le);
// later:
QFormLayout::TakeRowResult result = flay->takeRow(widget);

Si vous souhaitez supprimer la ligne de la mise en page et supprimer les widgets, utilisez plutôt la fonction ` removeRow()`.

Renvoie : une structure contenant à la fois le widget et les éléments de mise en page d'étiquette correspondants

Il s'agit d'une fonction surchargée.

Voir aussi ` removeRow()`.

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