QFormLayout Class
Die Klasse „QFormLayout“ verwaltet Formulare aus Eingabe-Widgets und den dazugehörigen Beschriftungen. Mehr...
| Überschrift: | #include <QFormLayout> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Erbt von: | QLayout |
Öffentliche Typen
| struct | TakeRowResult |
| enum | FieldGrowthPolicy { FieldsStayAtSizeHint, ExpandingFieldsGrow, AllNonFixedFieldsGrow } |
| enum | ItemRole { LabelRole, FieldRole, SpanningRole } |
| enum | RowWrapPolicy { DontWrapRows, WrapLongRows, WrapAllRows } |
Eigenschaften
|
|
Öffentliche Funktionen
| 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 |
Neu implementierte öffentliche Funktionen
| 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 |
Ausführliche Beschreibung
QFormLayout ist eine Komfort-Layoutklasse, die ihre untergeordneten Elemente in einem zweispaltigen Formular anordnet. Die linke Spalte besteht aus Beschriftungen, die rechte Spalte aus „Feld“-Widgets (Zeileneditoren, Drehfelder usw.).
Traditionell wurden solche zweispaltigen Formularlayouts mit ` QGridLayout` realisiert. `QFormLayout` ist eine übergeordnete Alternative, die folgende Vorteile bietet:
- Einhaltung der Look-and-Feel-Richtlinien der verschiedenen Plattformen.
Beispielsweise legen die Richtlinien für macOS Aqua und KDE fest, dass Beschriftungen rechtsbündig ausgerichtet werden sollten, während Windows- und GNOME-Anwendungen normalerweise eine linksbündige Ausrichtung verwenden.
- Unterstützung für den Zeilenumbruch bei langen Zeilen.
Für Geräte mit kleinen Displays kann QFormLayout auf „ wrap long rows “ oder sogar auf „ wrap all rows “ eingestellt werden.
- Praktische API zum Erstellen von Beschriftungs-Feld-Paaren.
Die Überladung von ` addRow()` (die ein ` QString ` und ein ` QWidget *` entgegennimmt) erstellt im Hintergrund ein ` QLabel ` und richtet dessen „Buddy“ automatisch ein. Wir können dann Code wie diesen schreiben:
QFormLayout *formLayout = new QFormLayout(this); formLayout->addRow(tr("&Name:"), nameLineEdit); formLayout->addRow(tr("&Email:"), emailLineEdit); formLayout->addRow(tr("&Age:"), ageSpinBox);Vergleichen Sie dies mit dem folgenden Code, der unter Verwendung von ` QGridLayout` geschrieben wurde:
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);
Die folgende Tabelle zeigt das Standard-Erscheinungsbild in verschiedenen Stilen.
| QCommonStyle abgeleitete Stile (außer QPlastiqueStyle) | QMacStyle | QPlastiqueStyle | Qt-Erweiterte Stile |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
| Traditioneller Stil, der für Windows, GNOME und frühere Versionen von KDE verwendet wird. Beschriftungen sind linksbündig ausgerichtet, und erweiterbare Felder füllen den verfügbaren Platz aus. (Dies entspricht normalerweise dem Ergebnis, das wir bei Verwendung eines zweispaltigen ` QGridLayout` erhalten würden.) | Stil basierend auf den macOS-Aqua-Richtlinien. Beschriftungen sind rechtsbündig, die Felder wachsen nicht über ihre Größenangabe hinaus und das Formular ist horizontal zentriert. | Empfohlener Stil für KDE-Anwendungen. Ähnlich wie „MacStyle“, mit dem Unterschied, dass das Formular linksbündig ausgerichtet ist und alle Felder so groß werden, dass sie den verfügbaren Platz ausfüllen. | Standardstil für Qt-Extended-Stile. Beschriftungen sind rechtsbündig, expandierende Felder dehnen sich aus, um den verfügbaren Platz auszufüllen, und bei langen Zeilen ist der Zeilenumbruch aktiviert. |
Die Formularstile können auch einzeln überschrieben werden, indem die Funktionen ` setLabelAlignment()`, ` setFormAlignment()`, ` setFieldGrowthPolicy()` und ` setRowWrapPolicy()` aufgerufen werden. Um beispielsweise das Erscheinungsbild des Formularlayouts von `QMacStyle` auf allen Plattformen zu simulieren, jedoch mit linksbündigen Beschriftungen, könnten Sie Folgendes schreiben:
formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows);
formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint);
formLayout->setFormAlignment(Qt::AlignHCenter | Qt::AlignTop);
formLayout->setLabelAlignment(Qt::AlignLeft);Siehe auch QGridLayout, QBoxLayout und QStackedLayout.
Dokumentation zu Mitgliedstypen
enum QFormLayout::FieldGrowthPolicy
Diese Aufzählung legt die verschiedenen Richtlinien fest, mit denen gesteuert werden kann, wie die Felder des Formulars vergrößert werden.
| Konstante | Wert | Beschreibung |
|---|---|---|
QFormLayout::FieldsStayAtSizeHint | 0 | Die Felder werden niemals über ihre Breite effective size hint hinaus vergrößert. Dies ist die Standardeinstellung für QMacStyle. |
QFormLayout::ExpandingFieldsGrow | 1 | Felder mit einem horizontalen Größenhinweis ( size policy ) von „ Expanding “ oder „ MinimumExpanding “ werden so vergrößert, dass sie den verfügbaren Platz ausfüllen. Die übrigen Felder werden nicht über ihren effektiven Größenhinweis hinaus vergrößert. Dies ist die Standardrichtlinie für „Plastique“. |
QFormLayout::AllNonFixedFieldsGrow | 2 | Alle Felder mit einer Größenrichtlinie, die eine Vergrößerung zulässt, werden so vergrößert, dass sie den verfügbaren Platz ausfüllen. Dies ist die Standardrichtlinie für die meisten Stile. |
Siehe auch fieldGrowthPolicy.
enum QFormLayout::ItemRole
Diese Enumeration legt fest, welche Arten von Widgets (oder anderen Layout-Elementen) in einer Zeile erscheinen dürfen.
| Konstante | Wert | Beschreibung |
|---|---|---|
QFormLayout::LabelRole | 0 | Ein Beschriftungs-Widget. |
QFormLayout::FieldRole | 1 | Ein Feld-Widget. |
QFormLayout::SpanningRole | 2 | Ein Widget, das sich über Beschriftungs- und Feldspalten erstreckt. |
Siehe auch itemAt() und getItemPosition().
enum QFormLayout::RowWrapPolicy
Diese Aufzählung legt die verschiedenen Richtlinien fest, mit denen gesteuert werden kann, wie die Zeilen des Formulars umgebrochen werden.
| Konstante | Wert | Beschreibung |
|---|---|---|
QFormLayout::DontWrapRows | 0 | Felder werden immer neben ihrer Beschriftung angeordnet. Dies ist die Standardregel für alle Stile mit Ausnahme der Qt-Extended-Stile. |
QFormLayout::WrapLongRows | 1 | Den Beschriftungen wird genügend horizontaler Platz zugewiesen, um auch die breiteste Beschriftung unterzubringen; der verbleibende Platz wird den Feldern zugewiesen. Ist die Mindestbreite eines Feldpaares größer als der verfügbare Platz, wird das Feld in die nächste Zeile umgebrochen. Dies ist die Standardregel für Qt-Extended-Stile. |
QFormLayout::WrapAllRows | 2 | Felder werden immer unterhalb ihrer Beschriftung angeordnet. |
Siehe auch „ rowWrapPolicy “.
Eigenschaftsdokumentation
fieldGrowthPolicy : FieldGrowthPolicy
Diese Eigenschaft legt fest, wie die Felder des Formulars vergrößert werden
Der Standardwert hängt vom Widget oder vom Anwendungsstil ab. Für „QMacStyle“ ist der Standardwert „ FieldsStayAtSizeHint “; für von „ QCommonStyle “ abgeleitete Stile (wie „Plastique“ und „Windows“) ist der Standardwert „ ExpandingFieldsGrow “; für „Qt Extended“-Stile ist der Standardwert „ AllNonFixedFieldsGrow “.
Wenn keines der Felder vergrößert werden kann und die Größe des Formulars geändert wird, wird der zusätzliche Platz entsprechend dem aktuellen Wert von ` form alignment` verteilt.
Zugriffsfunktionen:
| QFormLayout::FieldGrowthPolicy | fieldGrowthPolicy() const |
| void | setFieldGrowthPolicy(QFormLayout::FieldGrowthPolicy policy) |
Siehe auch „ formAlignment “ und „ rowWrapPolicy “.
formAlignment : Qt::Alignment
Diese Eigenschaft legt die Ausrichtung der Inhalte des Formularlayouts innerhalb der Layoutgeometrie fest
Der Standardwert hängt vom Widget- oder Anwendungsstil ab. Für QMacStyle lautet der Standardwert „ Qt::AlignHCenter “ | „ Qt::AlignTop “; für die anderen Stile lautet der Standardwert „ Qt::AlignLeft “ | „ Qt::AlignTop “.
Zugriffsfunktionen:
| Qt::Alignment | formAlignment() const |
| void | setFormAlignment(Qt::Alignment alignment) |
Siehe auch „ labelAlignment “ und „ rowWrapPolicy “.
horizontalSpacing : int
Diese Eigenschaft legt den Abstand zwischen nebeneinander angeordneten Widgets fest
Standardmäßig wird, sofern kein Wert explizit festgelegt ist, der horizontale Abstand des Layouts vom übergeordneten Layout oder aus den Stileinstellungen des übergeordneten Widgets übernommen.
Zugriffsfunktionen:
| int | horizontalSpacing() const |
| void | setHorizontalSpacing(int spacing) |
Siehe auch „ verticalSpacing“ , „ QStyle::pixelMetric()“ und „ PM_LayoutHorizontalSpacing “.
labelAlignment : Qt::Alignment
Diese Eigenschaft legt die horizontale Ausrichtung der Beschriftungen fest
Der Standardwert hängt vom Widget oder vom Anwendungsstil ab. Bei von „ QCommonStyle “ abgeleiteten Stilen – mit Ausnahme von „QPlastiqueStyle“ – lautet der Standardwert „ Qt::AlignLeft “; bei den anderen Stilen lautet der Standardwert „ Qt::AlignRight “.
Zugriffsfunktionen:
| Qt::Alignment | labelAlignment() const |
| void | setLabelAlignment(Qt::Alignment alignment) |
Siehe auch „ formAlignment “.
rowWrapPolicy : RowWrapPolicy
Diese Eigenschaft legt fest, wie die Zeilen des Formulars umgebrochen werden
Der Standardwert hängt vom Widget oder vom Anwendungsstil ab. Bei Qt-Extended-Stilen ist der Standardwert „ WrapLongRows “; bei den anderen Stilen ist der Standardwert „ DontWrapRows “.
Wenn Sie jede Beschriftung über dem zugehörigen Feld (statt daneben) anzeigen möchten, setzen Sie diese Eigenschaft auf „ WrapAllRows “.
Zugriffsfunktionen:
| QFormLayout::RowWrapPolicy | rowWrapPolicy() const |
| void | setRowWrapPolicy(QFormLayout::RowWrapPolicy policy) |
Siehe auch „ fieldGrowthPolicy “.
verticalSpacing : int
Diese Eigenschaft legt den Abstand zwischen vertikal angeordneten Widgets fest
Standardmäßig wird, sofern kein Wert explizit festgelegt ist, der vertikale Abstand des Layouts vom übergeordneten Layout oder aus den Stileinstellungen des übergeordneten Widgets übernommen.
Zugriffsfunktionen:
| int | verticalSpacing() const |
| void | setVerticalSpacing(int spacing) |
Siehe auch ` horizontalSpacing`, ` QStyle::pixelMetric()` und ` PM_LayoutHorizontalSpacing`.
Dokumentation zu den Mitgliedsfunktionen
[explicit] QFormLayout::QFormLayout(QWidget *parent = nullptr)
Erstellt ein neues Formularlayout mit dem angegebenen Widget „ parent “.
Das Layout wird direkt als oberstes Layout für „ parent “ festgelegt. Für ein Widget kann es nur ein oberstes Layout geben. Es wird von „ QWidget::layout()“ zurückgegeben.
Siehe auch „ QWidget::setLayout()“.
[virtual noexcept] QFormLayout::~QFormLayout()
Zerstört das Formularlayout.
[override virtual] void QFormLayout::addItem(QLayoutItem *item)
Implementiert erneut: ` QLayout::addItem` (`QLayoutItem *item`).
void QFormLayout::addRow(QWidget *label, QWidget *field)
Fügt am Ende dieses Formularlayouts eine neue Zeile mit den angegebenen Werten „ label “ und „ field “ hinzu.
Siehe auch insertRow().
void QFormLayout::addRow(QLayout *layout)
Fügt das angegebene „ layout “ am Ende dieses Formularlayouts ein. Das „ layout “ erstreckt sich über beide Spalten.
Dies ist eine überladene Funktion.
void QFormLayout::addRow(QWidget *widget)
Fügt das angegebene „ widget “ am Ende dieses Formularlayouts ein. Das „ widget “ erstreckt sich über beide Spalten.
Dies ist eine überladene Funktion.
void QFormLayout::addRow(QWidget *label, QLayout *field)
Dies ist eine überladene Funktion.
void QFormLayout::addRow(const QString &labelText, QLayout *field)
Diese Überladung erstellt im Hintergrund automatisch einen „ QLabel “ mit dem Text „ labelText “.
Dies ist eine überladene Funktion.
void QFormLayout::addRow(const QString &labelText, QWidget *field)
Diese Überladung erstellt im Hintergrund automatisch eine „ QLabel “ mit dem Text „ labelText “. Die „ field “ wird als „ buddy “ der neuen „ QLabel “ festgelegt.
Dies ist eine überladene Funktion.
[override virtual] int QFormLayout::count() const
Implementiert erneut: ` QLayout::count()` const.
[override virtual] Qt::Orientations QFormLayout::expandingDirections() const
Implementiert erneut: ` QLayout::expandingDirections()` const.
void QFormLayout::getItemPosition(int index, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
Ruft die Zeile und die Rolle (Spalte) des Elements an der angegebenen Adresse index ab. Liegt index außerhalb des zulässigen Bereichs, wird *rowPtr auf -1 gesetzt; andernfalls wird die Zeile in *rowPtr und die Rolle in *rolePtr gespeichert.
Siehe auch itemAt(), count(), getLayoutPosition() und getWidgetPosition().
void QFormLayout::getLayoutPosition(QLayout *layout, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
Ruft die Zeile und die Rolle (Spalte) des angegebenen untergeordneten Elements layout ab. Befindet sich layout nicht im Formularlayout, wird *rowPtr auf -1 gesetzt; andernfalls wird die Zeile in *rowPtr und die Rolle in *rolePtr gespeichert.
void QFormLayout::getWidgetPosition(QWidget *widget, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
Ruft die Zeile und die Rolle (Spalte) des angegebenen „ widget “ im Layout ab. Befindet sich „ widget “ nicht im Layout, wird „*rowPtr “ auf -1 gesetzt; andernfalls wird die Zeile in „*rowPtr “ und die Rolle in „*rolePtr “ gespeichert.
Siehe auch getItemPosition() und itemAt().
[override virtual] bool QFormLayout::hasHeightForWidth() const
Implementiert neu: ` QLayoutItem::hasHeightForWidth()` const.
[override virtual] int QFormLayout::heightForWidth(int width) const
Implementiert neu: ` QLayoutItem::heightForWidth(int) const`.
void QFormLayout::insertRow(int row, QWidget *label, QWidget *field)
Fügt an der Position „ row “ in diesem Formularlayout eine neue Zeile ein, mit den angegebenen Werten „ label “ und „ field “. Liegt „ row “ außerhalb des zulässigen Bereichs, wird die neue Zeile am Ende hinzugefügt.
Siehe auch addRow().
void QFormLayout::insertRow(int row, QLayout *layout)
Fügt das angegebene Element „ layout “ an der Position „ row “ in dieses Formularlayout ein. Das Element „ layout “ erstreckt sich über beide Spalten. Liegt „ row “ außerhalb des zulässigen Bereichs, wird das Widget am Ende hinzugefügt.
Dies ist eine überladene Funktion.
void QFormLayout::insertRow(int row, QWidget *widget)
Fügt das angegebene „ widget “ an der Position „ row “ in dieses Formularlayout ein. Das „ widget “ erstreckt sich über beide Spalten. Liegt „ row “ außerhalb des zulässigen Bereichs, wird das Widget am Ende hinzugefügt.
Dies ist eine überladene Funktion.
void QFormLayout::insertRow(int row, QWidget *label, QLayout *field)
Dies ist eine überladene Funktion.
void QFormLayout::insertRow(int row, const QString &labelText, QLayout *field)
Diese Überladung erstellt im Hintergrund automatisch ein „ QLabel “ mit dem Text „ labelText “.
Dies ist eine überladene Funktion.
void QFormLayout::insertRow(int row, const QString &labelText, QWidget *field)
Diese Überladung erstellt im Hintergrund automatisch eine „ QLabel “ mit dem Text „ labelText “. Die „ field “ wird als „ buddy “ des neuen „ QLabel “ festgelegt.
Dies ist eine überladene Funktion.
[override virtual] void QFormLayout::invalidate()
Implementiert: QLayout::invalidate().
[since 6.4] bool QFormLayout::isRowVisible(int row) const
Gibt „true“ zurück, wenn einige Elemente in der Zeile row sichtbar sind, andernfalls „false“.
Diese Funktion wurde in Qt 6.4 eingeführt.
[since 6.4] bool QFormLayout::isRowVisible(QLayout *layout) const
Gibt „true“ zurück, wenn einige Elemente in der Zeile, die „ layout “ entspricht, sichtbar sind; andernfalls wird „false“ zurückgegeben.
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.4 eingeführt.
[since 6.4] bool QFormLayout::isRowVisible(QWidget *widget) const
Gibt „true“ zurück, wenn einige Elemente in der Zeile, die „ widget “ entspricht, sichtbar sind; andernfalls wird „false“ zurückgegeben.
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.4 eingeführt.
[override virtual] QLayoutItem *QFormLayout::itemAt(int index) const
Implementiert: ` QLayout::itemAt(int index) const`.
QLayoutItem *QFormLayout::itemAt(int row, QFormLayout::ItemRole role) const
Gibt das Layout-Element im angegebenen „ row “ mit der angegebenen „ role “ (Spalte) zurück. Gibt „ nullptr “ zurück, wenn kein solches Element vorhanden ist.
Siehe auch „ QLayout::itemAt()“ und „ setItem()“.
QWidget *QFormLayout::labelForField(QWidget *field) const
Gibt die Bezeichnung zurück, die dem angegebenen „ field “ zugeordnet ist.
Siehe auch itemAt().
QWidget *QFormLayout::labelForField(QLayout *field) const
Dies ist eine überladene Funktion.
[override virtual] QSize QFormLayout::minimumSize() const
Implementiert: ` QLayout::minimumSize()` const.
void QFormLayout::removeRow(int row)
Löscht die Zeile „ row “ aus diesem Formularlayout.
row muss nicht-negativ und kleiner als rowCount() sein.
Nach diesem Aufruf wird ` rowCount()` um eins verringert. Alle Widgets und verschachtelten Layouts, die diese Zeile belegt haben, werden gelöscht. Dazu gehören sowohl die Feld-Widgets als auch die Beschriftung, falls vorhanden. Alle nachfolgenden Zeilen werden um eine Zeile nach oben verschoben, und der frei gewordene vertikale Platz wird auf die verbleibenden Zeilen verteilt.
Sie können diese Funktion verwenden, um einen vorherigen Aufruf von ` addRow()` oder ` insertRow()` rückgängig zu machen:
QFormLayout *flay = ...;
QPointer<QLineEdit> le = new QLineEdit;
flay->insertRow(2, "User:", le);
// later:
flay->removeRow(2); // le == nullptr at this pointWenn Sie die Zeile aus dem Layout entfernen möchten, ohne die Widgets zu löschen, verwenden Sie stattdessen ` takeRow()`.
Siehe auch ` takeRow()`.
void QFormLayout::removeRow(QLayout *layout)
Löscht die Zeile, die der „ layout “ entspricht, aus diesem Formularlayout.
Nach diesem Aufruf wird „ rowCount()“ um eins verringert. Alle Widgets und verschachtelten Layouts, die diese Zeile belegt haben, werden gelöscht. Dazu gehören sowohl die Feld-Widgets als auch die Beschriftung, falls vorhanden. Alle folgenden Zeilen werden um eine Zeile nach oben verschoben, und der freigewordene vertikale Platz wird auf die verbleibenden Zeilen neu verteilt.
Sie können diese Funktion verwenden, um einen vorherigen Aufruf von ` addRow()` oder ` insertRow()` rückgängig zu machen:
QFormLayout *flay = ...;
QPointer<QVBoxLayout> vbl = new QVBoxLayout;
flay->insertRow(2, "User:", vbl);
// later:
flay->removeRow(layout); // vbl == nullptr at this pointWenn Sie die Zeile aus dem Formularlayout entfernen möchten, ohne das eingefügte Layout zu löschen, verwenden Sie stattdessen ` takeRow()`.
Dies ist eine überladene Funktion.
Siehe auch ` takeRow()`.
void QFormLayout::removeRow(QWidget *widget)
Löscht die Zeile, die der „ widget “ entspricht, aus diesem Formularlayout.
Nach diesem Aufruf wird „ rowCount()“ um eins verringert. Alle Widgets und verschachtelten Layouts, die diese Zeile belegt haben, werden gelöscht. Dazu gehören sowohl die Feld-Widgets als auch die Beschriftung, falls vorhanden. Alle nachfolgenden Zeilen werden um eine Zeile nach oben verschoben, und der frei gewordene vertikale Platz wird auf die verbleibenden Zeilen verteilt.
Sie können diese Funktion verwenden, um einen vorherigen Aufruf von „ addRow()“ oder „ insertRow()“ rückgängig zu machen:
QFormLayout *flay = ...;
QPointer<QLineEdit> le = new QLineEdit;
flay->insertRow(2, "User:", le);
// later:
flay->removeRow(le); // le == nullptr at this pointWenn Sie die Zeile aus dem Layout entfernen möchten, ohne die Widgets zu löschen, verwenden Sie stattdessen ` takeRow()`.
Dies ist eine überladene Funktion.
Siehe auch ` takeRow()`.
int QFormLayout::rowCount() const
Gibt die Anzahl der Zeilen im Formular zurück.
Siehe auch ` QLayout::count()`.
[override virtual] void QFormLayout::setGeometry(const QRect &rect)
Implementiert: QLayout::setGeometry(const QRect &r).
void QFormLayout::setItem(int row, QFormLayout::ItemRole role, QLayoutItem *item)
Setzt das Element im angegebenen „ row “ für das angegebene „ role “ auf „ item “ und erweitert das Layout dabei bei Bedarf um leere Zeilen.
Ist die Zelle bereits belegt, wird die „ item “ nicht eingefügt und eine Fehlermeldung an die Konsole gesendet. Das „ item “ erstreckt sich über beide Spalten.
Warnung: VerwendenSie diese Funktion nicht, um untergeordnete Layouts oder untergeordnete Widget-Elemente hinzuzufügen. Verwenden Sie stattdessen setLayout() oder setWidget().
Siehe auch ` setLayout()`.
void QFormLayout::setLayout(int row, QFormLayout::ItemRole role, QLayout *layout)
Legt das Unterlayout im angegebenen „ row “ für das angegebene „ role “ auf „ layout “ fest und erweitert das Formularlayout dabei bei Bedarf um leere Zeilen.
Ist die Zelle bereits belegt, wird das ` layout ` nicht eingefügt und eine Fehlermeldung an die Konsole gesendet.
Hinweis: Für die meisten Anwendungen sollten „ addRow()“ oder „ insertRow()“ anstelle von „setLayout()“ verwendet werden.
Siehe auch ` setWidget()`.
[since 6.4] void QFormLayout::setRowVisible(int row, bool on)
Zeigt die Zeile „ row “ an, wenn „ on “ wahr ist, andernfalls wird die Zeile ausgeblendet.
row muss nicht-negativ und kleiner als ` rowCount()` sein.
Diese Funktion wurde in Qt 6.4 eingeführt.
Siehe auch ` isRowVisible()`, ` removeRow()` und ` takeRow()`.
[since 6.4] void QFormLayout::setRowVisible(QLayout *layout, bool on)
Zeigt die Zeile an, die „ layout “ entspricht, wenn „ on “ wahr ist; andernfalls wird die Zeile ausgeblendet.
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.4 eingeführt.
Siehe auch removeRow() und takeRow().
[since 6.4] void QFormLayout::setRowVisible(QWidget *widget, bool on)
Zeigt die Zeile an, die „ widget “ entspricht, wenn „ on “ wahr ist; andernfalls wird die Zeile ausgeblendet.
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.4 eingeführt.
Siehe auch removeRow() und takeRow().
[override virtual] void QFormLayout::setSpacing(int spacing)
Implementiert eine Zugriffsfunktion für die Eigenschaft „ QLayout::spacing “ neu.
Diese Funktion setzt sowohl den vertikalen als auch den horizontalen Abstand auf „ spacing “.
Siehe auch „ spacing()“, „ setVerticalSpacing()“ und „ setHorizontalSpacing()“.
void QFormLayout::setWidget(int row, QFormLayout::ItemRole role, QWidget *widget)
Setzt das Widget im angegebenen „ row “ für die angegebene „ role “ auf „ widget “ und erweitert das Layout bei Bedarf um leere Zeilen.
Ist die Zelle bereits belegt, wird das ` widget ` nicht eingefügt und eine Fehlermeldung an die Konsole gesendet.
Hinweis: Für die meisten Anwendungen sollten „ addRow()“ oder „ insertRow()“ anstelle von „setWidget()“ verwendet werden.
Siehe auch ` setLayout()`.
[override virtual] QSize QFormLayout::sizeHint() const
Implementiert: QLayoutItem::sizeHint() const.
[override virtual] int QFormLayout::spacing() const
Implementiert eine Zugriffsfunktion für die Eigenschaft „ QLayout::spacing “ neu.
Ist der vertikale Abstand gleich dem horizontalen Abstand, gibt diese Funktion diesen Wert zurück; andernfalls gibt sie -1 zurück.
Siehe auch „ setSpacing()“, „ verticalSpacing()“ und „ horizontalSpacing()“.
[override virtual] QLayoutItem *QFormLayout::takeAt(int index)
Implementiert: QLayout::takeAt(int index).
QFormLayout::TakeRowResult QFormLayout::takeRow(int row)
Entfernt das angegebene „ row “ aus diesem Formularlayout.
row muss nicht-negativ und kleiner als rowCount() sein.
Hinweis: Diese Funktion löscht nichts.
Nach diesem Aufruf wird ` rowCount()` um eins verringert. Alle nachfolgenden Zeilen werden um eine Zeile nach oben verschoben, und der frei gewordene vertikale Platz wird auf die verbleibenden Zeilen verteilt.
Sie können diese Funktion verwenden, um einen vorherigen Aufruf von ` addRow()` oder ` insertRow()` rückgängig zu machen:
QFormLayout *flay = ...;
QPointer<QLineEdit> le = new QLineEdit;
flay->insertRow(2, "User:", le);
// later:
QFormLayout::TakeRowResult result = flay->takeRow(2);Wenn Sie die Zeile aus dem Layout entfernen und die Widgets löschen möchten, verwenden Sie stattdessen ` removeRow()`.
Gibt eine Struktur zurück, die sowohl das Widget als auch die zugehörigen Beschriftungs-Layoutelemente enthält
Siehe auch ` removeRow()`.
QFormLayout::TakeRowResult QFormLayout::takeRow(QLayout *layout)
Entfernt das angegebene „ layout “ aus diesem Formularlayout.
Hinweis: Diese Funktion löscht nichts.
Nach diesem Aufruf wird ` rowCount()` um eins verringert. Alle nachfolgenden Zeilen werden um eine Zeile nach oben verschoben, und der frei gewordene vertikale Platz wird auf die verbleibenden Zeilen verteilt.
QFormLayout *flay = ...;
QPointer<QVBoxLayout> vbl = new QVBoxLayout;
flay->insertRow(2, "User:", vbl);
// later:
QFormLayout::TakeRowResult result = flay->takeRow(widget);Wenn Sie die Zeile aus dem Formularlayout entfernen und das eingefügte Layout löschen möchten, verwenden Sie stattdessen „ removeRow()“.
Gibt eine Struktur zurück, die sowohl das Widget als auch die zugehörigen Beschriftungs-Layoutelemente enthält
Dies ist eine überladene Funktion.
Siehe auch removeRow().
QFormLayout::TakeRowResult QFormLayout::takeRow(QWidget *widget)
Entfernt das angegebene „ widget “ aus diesem Formularlayout.
Hinweis: Diese Funktion löscht nichts.
Nach diesem Aufruf wird „ rowCount()“ um eins verringert. Alle nachfolgenden Zeilen werden um eine Zeile nach oben verschoben, und der frei gewordene vertikale Platz wird auf die verbleibenden Zeilen verteilt.
QFormLayout *flay = ...;
QPointer<QLineEdit> le = new QLineEdit;
flay->insertRow(2, "User:", le);
// later:
QFormLayout::TakeRowResult result = flay->takeRow(widget);Wenn Sie die Zeile aus dem Layout entfernen und die Widgets löschen möchten, verwenden Sie stattdessen ` removeRow()`.
Gibt eine Struktur zurück, die sowohl das Widget als auch die zugehörigen Beschriftungs-Layoutelemente enthält
Dies ist eine überladene Funktion.
Siehe auch ` 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.



