QFormLayout Class
La classe QFormLayout gère les formes des widgets de saisie et leurs étiquettes associées. Plus d'informations...
| En-tête : | #include <QFormLayout> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Héritages : | 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 disposition pratique qui présente ses enfants sous la forme de deux colonnes. La colonne de gauche est constituée d'étiquettes et la colonne de droite est constituée de widgets de "champs" (éditeurs de lignes, boîtes de dialogue, etc.).
Traditionnellement, de telles dispositions de formulaires à 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 relatives à l'aspect et à la convivialité des différentes plateformes.
Par exemple, les directives macOS Aqua et KDE spécifient que les étiquettes doivent être alignées à droite, alors que les applications Windows et GNOME utilisent normalement l'alignement à gauche.
- Prise en charge de l'habillage des longues lignes.
Pour les appareils dotés d'un petit écran, QFormLayout peut être défini sur wrap long rows, voire sur wrap all rows.
- API pratique pour la création de paires étiquette-champ.
La surcharge addRow() qui prend un QString et un QWidget * crée un QLabel dans les coulisses et configure automatiquement son compagnon. Nous pouvons alors écrire un 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 montre l'apparence par défaut dans différents styles.
| QCommonStyle styles dérivés (sauf QPlastiqueStyle) | QMacStyle | QPlastiqueStyle | Styles Qt Extended |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
| Style traditionnel utilisé pour Windows, GNOME et les versions antérieures de KDE. Les étiquettes sont alignées à gauche et les champs en expansion s'agrandissent pour remplir l'espace disponible. (Cela correspond normalement à ce que l'on obtiendrait en utilisant une page QGridLayout à deux colonnes). | Style basé sur les directives macOS Aqua. Les étiquettes sont alignées à droite, les champs ne s'agrandissent pas au-delà de leur taille et le formulaire est centré horizontalement. | Style recommandé pour les applications KDE. Similaire à MacStyle, sauf que le formulaire est aligné à gauche et que tous les champs s'agrandissent pour remplir l'espace disponible. | Style par défaut pour les styles Qt Extended. Les étiquettes sont alignées à droite, les champs en expansion s'agrandissent pour remplir l'espace disponible et l'habillage des lignes est activé pour les longues lignes. |
Les styles de formulaire peuvent également être modifiés individuellement en appelant setLabelAlignment(), setFormAlignment(), setFieldGrowthPolicy() et setRowWrapPolicy(). Par exemple, pour simuler l'apparence du formulaire de QMacStyle sur toutes les plateformes, mais avec des étiquettes alignées à gauche, vous pouvez écrire :
formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows); formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); formLayout->setFormAlignment(Qt::AlignHCenter | Qt::AlignTop); formLayout->setLabelAlignment(Qt::AlignLeft);
Voir aussi QGridLayout, QBoxLayout, et QStackedLayout.
Documentation sur les types de membres
enum QFormLayout::FieldGrowthPolicy
Cette énumération spécifie les différentes politiques qui peuvent être utilisées pour contrôler la manière dont les champs du formulaire se développent.
| Constante | Valeur | Description |
|---|---|---|
QFormLayout::FieldsStayAtSizeHint | 0 | Les champs ne s'agrandissent jamais au-delà de leur effective size hint. C'est la valeur par défaut de QMacStyle. |
QFormLayout::ExpandingFieldsGrow | 1 | size policy Les champs dont l'adresse horizontale est Expanding ou MinimumExpanding s'agrandissent pour remplir l'espace disponible. Les autres champs ne dépassent pas leur indice de taille effective. Il s'agit de la politique par défaut pour Plastique. |
QFormLayout::AllNonFixedFieldsGrow | 2 | Tous les champs dont la politique de taille leur permet de s'agrandir s'agrandiront pour remplir 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) qui peuvent apparaître dans une ligne.
| Constante | Valeur | Description |
|---|---|---|
QFormLayout::LabelRole | 0 | Un widget d'étiquette. |
QFormLayout::FieldRole | 1 | Un widget de champ. |
QFormLayout::SpanningRole | 2 | Un widget qui s'étend sur les colonnes d'étiquettes et de champs. |
Voir également itemAt() et getItemPosition().
enum QFormLayout::RowWrapPolicy
Cette énumération spécifie les différentes politiques qui peuvent être utilisées pour contrôler la manière dont les lignes du formulaire s'enroulent.
| Constante | Valeur | Description |
|---|---|---|
QFormLayout::DontWrapRows | 0 | Les champs sont toujours disposés à côté de leur étiquette. Il s'agit de la politique par défaut pour tous les styles, à l'exception des styles Qt Extended. |
QFormLayout::WrapLongRows | 1 | Les étiquettes disposent d'un espace horizontal suffisant pour contenir l'étiquette la plus large, le reste de l'espace étant réservé aux champs. Si la taille minimale d'une paire de champs est supérieure à l'espace disponible, le champ est placé sur la ligne suivante. Il s'agit de la politique par défaut pour les styles Qt Extended. |
QFormLayout::WrapAllRows | 2 | Les champs sont toujours placés sous leur étiquette. |
Voir également rowWrapPolicy.
Documentation sur les propriétés
fieldGrowthPolicy : FieldGrowthPolicy
Cette propriété définit la manière dont les champs du formulaire se développent
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 de QCommonStyle (comme 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'agrandir et que le formulaire est redimensionné, l'espace supplémentaire est distribué en fonction du style actuel 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 présentation du formulaire dans la géométrie de la présentation
La valeur par défaut dépend du style du widget ou 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 parentale ou des paramètres de style du widget parent.
Fonctions d'accès :
| int | horizontalSpacing() const |
| void | setHorizontalSpacing(int spacing) |
Voir aussi 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 style du widget ou 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 également formAlignment.
rowWrapPolicy : RowWrapPolicy
Cette propriété définit la manière dont les lignes du formulaire s'enroulent
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 qui lui est associé (plutôt qu'à côté), définissez cette propriété à WrapAllRows.
Fonctions d'accès :
| QFormLayout::RowWrapPolicy | rowWrapPolicy() const |
| void | setRowWrapPolicy(QFormLayout::RowWrapPolicy policy) |
Voir aussi 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 mise en page est hérité de la mise en page 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)
Construit une nouvelle présentation de formulaire avec le widget parent donné.
La disposition est définie directement comme la disposition de premier niveau pour parent. Il ne peut y avoir qu'une seule présentation de premier niveau pour un widget. Elle est renvoyée par QWidget::layout().
Voir aussi QWidget::setLayout().
[virtual noexcept] QFormLayout::~QFormLayout()
Détruit 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 présentation de formulaire, avec les données label et field.
Voir aussi insertRow().
void QFormLayout::addRow(QLayout *layout)
Ajoute l'adresse layout spécifiée à la fin de la mise en page de ce formulaire. Le site layout s'étend sur les deux colonnes.
Il s'agit d'une fonction surchargée.
void QFormLayout::addRow(QWidget *widget)
Ajoute l'adresse widget spécifiée à la fin de la mise en page de ce formulaire. Le site widget 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 un QLabel dans les coulisses avec labelText comme texte.
Il s'agit d'une fonction surchargée.
void QFormLayout::addRow(const QString &labelText, QWidget *field)
Cette surcharge crée automatiquement un QLabel en coulisses avec labelText comme texte. Le field est défini comme le nouveau buddy de 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 à l'adresse spécifiée index. Si index est hors limites, *rowPtr est mis à -1 ; sinon la ligne est stockée dans *rowPtr et le rôle est stocké dans *rolePtr.
Voir aussi 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'enfant spécifié layout. Si layout ne figure pas dans la présentation du formulaire, *rowPtr prend la valeur -1 ; sinon, la ligne est stockée dans *rowPtr et le rôle est stocké 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'adresse widget spécifiée dans la mise en page. Si widget n'est pas dans la disposition, *rowPtr est mis à -1 ; sinon la ligne est stockée dans *rowPtr et le rôle est stocké dans *rolePtr.
Voir aussi 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 présentation de formulaire, avec les données label et field. Si row est hors limites, la nouvelle ligne est ajoutée à la fin.
Voir aussi addRow().
void QFormLayout::insertRow(int row, QLayout *layout)
Insère l'adresse layout spécifiée à la position row dans cette mise en page de formulaire. Le 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'adresse widget spécifiée à la position row dans cette mise en page de formulaire. Le widget 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 *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 un QLabel dans les coulisses avec labelText comme texte.
Il s'agit d'une fonction surchargée.
void QFormLayout::insertRow(int row, const QString &labelText, QWidget *field)
Cette surcharge crée automatiquement un QLabel en coulisses avec labelText comme texte. Le field est défini comme le nouveau buddy de 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
Retourne vrai si certains éléments de la ligne row sont visibles, sinon retourne faux.
Cette fonction a été introduite dans Qt 6.4.
[since 6.4] bool QFormLayout::isRowVisible(QLayout *layout) const
Renvoie un message vrai si certains éléments de la ligne correspondant à layout sont visibles, sinon il renvoie un message faux.
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 un message vrai si certains éléments de la ligne correspondant à widget sont visibles, sinon il renvoie un message faux.
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 dans l'adresse row donnée avec l'adresse role (colonne) spécifiée. Renvoie nullptr s'il n'existe pas d'élément de ce type.
Voir aussi QLayout::itemAt() et setItem().
QWidget *QFormLayout::labelForField(QWidget *field) const
Renvoie l'étiquette associée à l'adresse field.
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 présentation de formulaire.
row doit être non négatif et inférieur à rowCount().
Après cet appel, rowCount() est décrémenté de un. Tous les widgets et les dispositions imbriquées qui occupaient cette ligne sont supprimés. Cela inclut le(s) widget(s) 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 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 présentation de formulaire.
Après cet appel, rowCount() est décrémenté de un. Tous les widgets et les dispositions imbriquées qui occupaient cette ligne sont supprimés. Cela inclut le(s) widget(s) 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 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 aussi takeRow().
void QFormLayout::removeRow(QWidget *widget)
Supprime la ligne correspondant à widget de cette présentation de formulaire.
Après cet appel, rowCount() est décrémenté de un. Tous les widgets et les dispositions imbriquées qui occupaient cette ligne sont supprimés. Cela inclut le(s) widget(s) 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 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 dans la cellule row pour la cellule role à item, en étendant la mise en page avec des lignes vides si nécessaire.
Si la cellule est déjà occupée, le item n'est pas inséré et un message d'erreur est envoyé à la console. Le item s'étend sur les deux colonnes.
Attention : N'utilisez pas cette fonction pour ajouter des dispositions enfant ou des éléments de widget enfant. Utilisez plutôt setLayout() ou setWidget().
Voir aussi setLayout().
void QFormLayout::setLayout(int row, QFormLayout::ItemRole role, QLayout *layout)
Définit la disposition secondaire dans la cellule row pour la cellule role à layout, en étendant la disposition du formulaire avec des lignes vides si nécessaire.
Si la cellule est déjà occupée, layout n'est pas inséré et un message d'erreur est envoyé à la console.
Remarque : pour la plupart des applications, addRow() ou insertRow() doit être utilisé à la place de setLayout().
Voir également setWidget().
[since 6.4] void QFormLayout::setRowVisible(int row, bool on)
Affiche la ligne row si on est vrai, sinon cache la ligne.
row doit être non négatif et inférieur à rowCount().
Cette fonction a été introduite dans Qt 6.4.
Voir aussi isRowVisible(), removeRow(), et takeRow().
[since 6.4] void QFormLayout::setRowVisible(QLayout *layout, bool on)
Affiche la ligne correspondant à layout si on est vrai, sinon cache la ligne.
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.4.
Voir aussi removeRow() et takeRow().
[since 6.4] void QFormLayout::setRowVisible(QWidget *widget, bool on)
Affiche la ligne correspondant à widget si on est vrai, sinon cache 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 à la propriété : QLayout::spacing.
Cette fonction fixe l'espacement vertical et horizontal à spacing.
Voir aussi spacing(), setVerticalSpacing() et setHorizontalSpacing().
void QFormLayout::setWidget(int row, QFormLayout::ItemRole role, QWidget *widget)
Définit le widget dans la cellule row pour la cellule role à widget, en étendant la disposition avec des lignes vides si nécessaire.
Si la cellule est déjà occupée, le widget n'est pas inséré et un message d'erreur est envoyé à la console.
Remarque : pour la plupart des applications, addRow() ou insertRow() doit être utilisé à la place de setWidget().
Voir également 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 à la propriété : QLayout::spacing.
Si l'espacement vertical est égal à l'espacement horizontal, cette fonction renvoie cette valeur ; sinon, elle renvoie -1.
Voir aussi 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'adresse row spécifiée de cette présentation de formulaire.
row doit être non négatif et inférieur à rowCount().
Remarque : cette fonction ne supprime rien.
Après cet appel, rowCount() est décrémenté de un. 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().
Retourne 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 le site layout spécifié de cette présentation de formulaire.
Remarque : cette fonction ne supprime rien.
Après cet appel, rowCount() est décrémenté de un. 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 présentation du formulaire et supprimer la présentation insérée, utilisez plutôt removeRow().
Retourne une structure contenant à la fois le widget et les éléments de mise en page de l'étiquette correspondante
Il s'agit d'une fonction surchargée.
Voir également removeRow().
QFormLayout::TakeRowResult QFormLayout::takeRow(QWidget *widget)
Supprime le site widget spécifié de cette présentation de formulaire.
Remarque : cette fonction ne supprime rien.
Après cet appel, rowCount() est décrémenté de un. 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 removeRow().
Retourne une structure contenant à la fois le widget et les éléments de mise en page de l'étiquette correspondante.
Il s'agit d'une fonction surchargée.
Voir également 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.



