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) | QMacStyle | QPlastiqueStyle | Styles 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.
| Constante | Valeur | Description |
|---|---|---|
QFormLayout::FieldsStayAtSizeHint | 0 | Les champs ne dépassent jamais leur effective size hint. Il s'agit de la valeur par défaut pour QMacStyle. |
QFormLayout::ExpandingFieldsGrow | 1 | Les 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::AllNonFixedFieldsGrow | 2 | Tous 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.
| 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 définit les différentes règles pouvant être utilisées pour contrôler le comportement de retour à la ligne des lignes du formulaire.
| Constante | Valeur | Description |
|---|---|---|
QFormLayout::DontWrapRows | 0 | Les 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::WrapLongRows | 1 | Les é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::WrapAllRows | 2 | Les 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 pointSi 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 pointSi 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 pointSi 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.



