QFormLayout Class
La clase QFormLayout gestiona formularios de widgets de entrada y sus etiquetas asociadas. Más...
| Cabecera: | #include <QFormLayout> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Hereda: | QLayout |
Tipos públicos
| struct | TakeRowResult |
| enum | FieldGrowthPolicy { FieldsStayAtSizeHint, ExpandingFieldsGrow, AllNonFixedFieldsGrow } |
| enum | ItemRole { LabelRole, FieldRole, SpanningRole } |
| enum | RowWrapPolicy { DontWrapRows, WrapLongRows, WrapAllRows } |
Propiedades
|
|
Funciones públicas
| 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 |
Funciones públicas reimplementadas
| 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 |
Descripción Detallada
QFormLayout es una clase de diseño que presenta a sus hijos en un formulario de dos columnas. La columna izquierda consiste en etiquetas y la columna derecha consiste en widgets de "campo" (editores de línea, cajas giratorias, etc.).
Tradicionalmente, estos diseños de formulario a dos columnas se conseguían utilizando QGridLayout. QFormLayout es una alternativa de nivel superior que ofrece las siguientes ventajas:
- Adherencia a las directrices de aspecto de las distintas plataformas.
Por ejemplo, las directrices de macOS Aqua y KDE especifican que las etiquetas deben estar alineadas a la derecha, mientras que las aplicaciones de Windows y GNOME utilizan normalmente la alineación a la izquierda.
- Soporte para envolver filas largas.
Para dispositivos con pantallas pequeñas, QFormLayout se puede establecer en wrap long rows, o incluso en wrap all rows.
- API conveniente para crear pares etiqueta-campo.
La sobrecarga addRow() que toma un QString y un QWidget * crea un QLabel entre bastidores y configura automáticamente su compañero. Podemos entonces escribir código como este:
QFormLayout *formLayout = new QFormLayout(this); formLayout->addRow(tr("&Name:"), nameLineEdit); formLayout->addRow(tr("&Email:"), emailLineEdit); formLayout->addRow(tr("&Age:"), ageSpinBox);
Compare esto con el siguiente código, escrito usando 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);
La siguiente tabla muestra la apariencia por defecto en diferentes estilos.
| QCommonStyle Estilos derivados (excepto QPlastiqueStyle) | QMacStyle | QPlastiqueStyle | Estilos Qt Extended |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
| Estilo tradicional usado para Windows, GNOME y versiones anteriores de KDE. Las etiquetas están alineadas a la izquierda, y los campos en expansión crecen hasta llenar el espacio disponible. (Esto corresponde normalmente a lo que obtendríamos usando una página de dos columnas QGridLayout.) | Estilo basado en las directrices Aqua de macOS. Las etiquetas están alineadas a la derecha, los campos no crecen más allá de su tamaño y el formulario está centrado horizontalmente. | Estilo recomendado para aplicaciones KDE. Similar a MacStyle, excepto que el formulario está alineado a la izquierda y todos los campos crecen para llenar el espacio disponible. | Estilo por defecto para los estilos Qt Extended. Las etiquetas están alineadas a la derecha, los campos en expansión crecen hasta ocupar el espacio disponible y se activa el ajuste de filas para las líneas largas. |
Los estilos de formulario también se pueden modificar individualmente llamando a setLabelAlignment(), setFormAlignment(), setFieldGrowthPolicy() y setRowWrapPolicy(). Por ejemplo, para simular la apariencia de diseño de formulario de QMacStyle en todas las plataformas, pero con etiquetas alineadas a la izquierda, podrías escribir:
formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows); formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); formLayout->setFormAlignment(Qt::AlignHCenter | Qt::AlignTop); formLayout->setLabelAlignment(Qt::AlignLeft);
Véase también QGridLayout, QBoxLayout, y QStackedLayout.
Documentación de tipos de miembros
enum QFormLayout::FieldGrowthPolicy
Este enum especifica las diferentes políticas que se pueden utilizar para controlar la forma en que crecen los campos del formulario.
| Constante | Valor | Descripción |
|---|---|---|
QFormLayout::FieldsStayAtSizeHint | 0 | Los campos nunca crecen más allá de su effective size hint. Este es el valor por defecto para QMacStyle. |
QFormLayout::ExpandingFieldsGrow | 1 | Los campos con un size policy horizontal de Expanding o MinimumExpanding crecerán hasta llenar el espacio disponible. Los demás campos no crecerán más allá de su tamaño efectivo. Esta es la política por defecto para Plastique. |
QFormLayout::AllNonFixedFieldsGrow | 2 | Todos los campos con una política de tamaño que les permita crecer crecerán hasta llenar el espacio disponible. Esta es la política por defecto para la mayoría de los estilos. |
Véase también fieldGrowthPolicy.
enum QFormLayout::ItemRole
Este enum especifica los tipos de widgets (u otros elementos de diseño) que pueden aparecer en una fila.
| Constante | Valor | Descripción |
|---|---|---|
QFormLayout::LabelRole | 0 | Un widget de etiqueta. |
QFormLayout::FieldRole | 1 | Un widget de campo. |
QFormLayout::SpanningRole | 2 | Un widget que abarca columnas de etiqueta y de campo. |
Véase también itemAt() y getItemPosition().
enum QFormLayout::RowWrapPolicy
Este enum especifica las diferentes políticas que se pueden utilizar para controlar la forma en que se envuelven las filas del formulario.
| Constante | Valor | Descripción |
|---|---|---|
QFormLayout::DontWrapRows | 0 | Los campos siempre se disponen junto a su etiqueta. Esta es la política por defecto para todos los estilos excepto Qt Extended. |
QFormLayout::WrapLongRows | 1 | A las etiquetas se les da suficiente espacio horizontal para que quepa la etiqueta más ancha, y el resto del espacio se da a los campos. Si el tamaño mínimo de un par de campos es mayor que el espacio disponible, el campo pasa a la línea siguiente. Esta es la política por defecto para los estilos Qt Extended. |
QFormLayout::WrapAllRows | 2 | Los campos siempre se colocan debajo de su etiqueta. |
Véase también rowWrapPolicy.
Documentación de propiedades
fieldGrowthPolicy : FieldGrowthPolicy
Esta propiedad contiene la forma en que crecen los campos del formulario
El valor por defecto depende del widget o estilo de aplicación. Para QMacStyle, el valor por defecto es FieldsStayAtSizeHint; para estilos derivados de QCommonStyle (como Plastique y Windows), el valor por defecto es ExpandingFieldsGrow; para estilos Qt Extended, el valor por defecto es AllNonFixedFieldsGrow.
Si ninguno de los campos puede crecer y se redimensiona el formulario, el espacio extra se distribuye según el form alignment actual.
Funciones de acceso:
| QFormLayout::FieldGrowthPolicy | fieldGrowthPolicy() const |
| void | setFieldGrowthPolicy(QFormLayout::FieldGrowthPolicy policy) |
Véase también formAlignment y rowWrapPolicy.
formAlignment : Qt::Alignment
Esta propiedad mantiene la alineación de los contenidos del diseño del formulario dentro de la geometría del diseño.
El valor por defecto depende del estilo del widget o de la aplicación. Para QMacStyle, el valor por defecto es Qt::AlignHCenter | Qt::AlignTop; para los otros estilos, el valor por defecto es Qt::AlignLeft | Qt::AlignTop.
Funciones de acceso:
| Qt::Alignment | formAlignment() const |
| void | setFormAlignment(Qt::Alignment alignment) |
Véase también labelAlignment y rowWrapPolicy.
horizontalSpacing : int
Esta propiedad contiene el espaciado entre widgets que están dispuestos uno al lado del otro.
Por defecto, si no se establece ningún valor explícitamente, el espaciado horizontal del diseño se hereda del diseño padre, o de los ajustes de estilo del widget padre.
Funciones de acceso:
| int | horizontalSpacing() const |
| void | setHorizontalSpacing(int spacing) |
Véase también verticalSpacing, QStyle::pixelMetric(), y PM_LayoutHorizontalSpacing.
labelAlignment : Qt::Alignment
Esta propiedad mantiene la alineación horizontal de las etiquetas.
El valor por defecto depende del estilo del widget o de la aplicación. Para los estilos derivados de QCommonStyle, excepto para QPlastiqueStyle, el valor por defecto es Qt::AlignLeft; para el resto de estilos, el valor por defecto es Qt::AlignRight.
Funciones de acceso:
| Qt::Alignment | labelAlignment() const |
| void | setLabelAlignment(Qt::Alignment alignment) |
Véase también formAlignment.
rowWrapPolicy : RowWrapPolicy
Esta propiedad mantiene la forma en que se envuelven las filas del formulario.
El valor por defecto depende del estilo del widget o de la aplicación. Para los estilos Qt Extended, el valor por defecto es WrapLongRows; para los otros estilos, el valor por defecto es DontWrapRows.
Si desea mostrar cada etiqueta encima de su campo asociado (en lugar de junto a él), establezca esta propiedad a WrapAllRows.
Funciones de acceso:
| QFormLayout::RowWrapPolicy | rowWrapPolicy() const |
| void | setRowWrapPolicy(QFormLayout::RowWrapPolicy policy) |
Véase también fieldGrowthPolicy.
verticalSpacing : int
Esta propiedad contiene el espaciado entre los widgets que están dispuestos verticalmente.
Por defecto, si no se establece ningún valor explícitamente, el espaciado vertical del diseño se hereda del diseño padre, o de los ajustes de estilo del widget padre.
Funciones de acceso:
| int | verticalSpacing() const |
| void | setVerticalSpacing(int spacing) |
Véase también horizontalSpacing, QStyle::pixelMetric(), y PM_LayoutHorizontalSpacing.
Documentación de las funciones miembro
[explicit] QFormLayout::QFormLayout(QWidget *parent = nullptr)
Construye un nuevo diseño de formulario con el widget parent dado.
El diseño se establece directamente como el diseño de nivel superior para parent. Sólo puede haber un diseño de nivel superior para un widget. Es devuelto por QWidget::layout().
Véase también QWidget::setLayout().
[virtual noexcept] QFormLayout::~QFormLayout()
Destruye el diseño del formulario.
[override virtual] void QFormLayout::addItem(QLayoutItem *item)
Reimplementa: QLayout::addItem(QLayoutItem *item).
void QFormLayout::addRow(QWidget *label, QWidget *field)
Añade una nueva fila en la parte inferior del formulario, con las direcciones label y field.
Véase también insertRow().
void QFormLayout::addRow(QLayout *layout)
Añade el layout especificado al final de este diseño de formulario. El layout abarca ambas columnas.
Se trata de una función sobrecargada.
void QFormLayout::addRow(QWidget *widget)
Añade el widget especificado al final de este diseño de formulario. El widget abarca ambas columnas.
Se trata de una función sobrecargada.
void QFormLayout::addRow(QWidget *label, QLayout *field)
Se trata de una función sobrecargada.
void QFormLayout::addRow(const QString &labelText, QLayout *field)
Esta sobrecarga crea automáticamente un QLabel entre bastidores con labelText como texto.
Se trata de una función sobrecargada.
void QFormLayout::addRow(const QString &labelText, QWidget *field)
Esta sobrecarga crea automáticamente un QLabel entre bastidores con labelText como texto. El field se establece como el nuevo QLabel's buddy.
Se trata de una función sobrecargada.
[override virtual] int QFormLayout::count() const
Reimplementa: QLayout::count() const.
[override virtual] Qt::Orientations QFormLayout::expandingDirections() const
Reimplementa: QLayout::expandingDirections() const.
void QFormLayout::getItemPosition(int index, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
Recupera la fila y el rol (columna) del elemento en el index especificado . Si index está fuera de los límites, *rowPtr se establece en -1; de lo contrario, la fila se almacena en *rowPtr y el rol se almacena en *rolePtr.
Véase también itemAt(), count(), getLayoutPosition() y getWidgetPosition().
void QFormLayout::getLayoutPosition(QLayout *layout, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
Recupera la fila y el rol (columna) del hijo especificado layout. Si layout no está en el diseño del formulario, *rowPtr se establece en -1; de lo contrario, la fila se almacena en *rowPtr y el rol se almacena en *rolePtr.
void QFormLayout::getWidgetPosition(QWidget *widget, int *rowPtr, QFormLayout::ItemRole *rolePtr) const
Recupera la fila y el rol (columna) del widget especificado en la presentación. Si widget no está en la presentación, *rowPtr se establece en -1; de lo contrario, la fila se almacena en *rowPtr y el rol se almacena en *rolePtr.
Véase también getItemPosition() y itemAt().
[override virtual] bool QFormLayout::hasHeightForWidth() const
Reimplementa: QLayoutItem::hasHeightForWidth() const.
[override virtual] int QFormLayout::heightForWidth(int width) const
Reimplementa: QLayoutItem::heightForWidth(int) const.
void QFormLayout::insertRow(int row, QWidget *label, QWidget *field)
Inserta una nueva fila en la posición row en este diseño de formulario, con los valores dados label y field. Si row está fuera de los límites, la nueva fila se añade al final.
Véase también addRow().
void QFormLayout::insertRow(int row, QLayout *layout)
Inserta el layout especificado en la posición row en este diseño de formulario. layout abarca ambas columnas. Si row está fuera de los límites, el widget se añade al final.
Esta es una función sobrecargada.
void QFormLayout::insertRow(int row, QWidget *widget)
Inserta el widget especificado en la posición row en este diseño de formulario. widget abarca ambas columnas. Si row está fuera de los límites, el widget se añade al final.
Esta es una función sobrecargada.
void QFormLayout::insertRow(int row, QWidget *label, QLayout *field)
Se trata de una función sobrecargada.
void QFormLayout::insertRow(int row, const QString &labelText, QLayout *field)
Esta sobrecarga crea automáticamente un QLabel entre bastidores con labelText como texto.
Se trata de una función sobrecargada.
void QFormLayout::insertRow(int row, const QString &labelText, QWidget *field)
Esta sobrecarga crea automáticamente un QLabel entre bastidores con labelText como texto. El field se establece como el nuevo QLabel's buddy.
Se trata de una función sobrecargada.
[override virtual] void QFormLayout::invalidate()
Reimplementa: QLayout::invalidate().
[since 6.4] bool QFormLayout::isRowVisible(int row) const
Devuelve true si algunos elementos de la fila row son visibles, en caso contrario devuelve false.
Esta función se introdujo en Qt 6.4.
[since 6.4] bool QFormLayout::isRowVisible(QLayout *layout) const
Devuelve true si algunos elementos de la fila correspondiente a layout son visibles, en caso contrario devuelve false.
Se trata de una función sobrecargada.
Esta función se introdujo en Qt 6.4.
[since 6.4] bool QFormLayout::isRowVisible(QWidget *widget) const
Devuelve true si algunos elementos de la fila correspondiente a widget son visibles, en caso contrario devuelve false.
Se trata de una función sobrecargada.
Esta función se introdujo en Qt 6.4.
[override virtual] QLayoutItem *QFormLayout::itemAt(int index) const
Reimplementa: QLayout::itemAt(int índice) const.
QLayoutItem *QFormLayout::itemAt(int row, QFormLayout::ItemRole role) const
Devuelve el elemento de diseño en el row dado con el role especificado (columna). Devuelve nullptr si no existe tal elemento.
Véase también QLayout::itemAt() y setItem().
QWidget *QFormLayout::labelForField(QWidget *field) const
Devuelve la etiqueta asociada a la dirección field.
Véase también itemAt().
QWidget *QFormLayout::labelForField(QLayout *field) const
Se trata de una función sobrecargada.
[override virtual] QSize QFormLayout::minimumSize() const
Reimplementa: QLayout::minimumSize() const.
void QFormLayout::removeRow(int row)
Elimina la fila row de este diseño de formulario.
row debe ser no negativo y menor que rowCount().
Después de esta llamada, rowCount() se decrementa en uno. Todos los widgets y diseños anidados que ocupaban esta fila son eliminados. Esto incluye tanto el widget(s) de campo como la etiqueta, si la hubiera. Todas las filas siguientes se desplazan una fila hacia arriba y el espacio vertical liberado se redistribuye entre las filas restantes.
Puede utilizar esta función para deshacer una operación anterior de addRow() o insertRow():
QFormLayout *flay = ...; QPointer<QLineEdit> le = new QLineEdit; flay->insertRow(2, "User:", le); // later: flay->removeRow(2); // le == nullptr at this point
Si desea eliminar la fila del diseño sin borrar los widgets, utilice takeRow() en su lugar.
Véase también takeRow().
void QFormLayout::removeRow(QLayout *layout)
Elimina la fila correspondiente a layout de este diseño de formulario.
Después de esta llamada, rowCount() se decrementa en uno. Todos los widgets y diseños anidados que ocupaban esta fila son eliminados. Esto incluye tanto el widget(s) de campo como la etiqueta, si la hubiera. Todas las filas siguientes se desplazan una fila hacia arriba y el espacio vertical liberado se redistribuye entre las filas restantes.
Puede utilizar esta función para deshacer una operación anterior de addRow() o insertRow():
QFormLayout *flay = ...; QPointer<QVBoxLayout> vbl = new QVBoxLayout; flay->insertRow(2, "User:", vbl); // later: flay->removeRow(layout); // vbl == nullptr at this point
Si desea eliminar la fila del diseño del formulario sin borrar el diseño insertado, utilice takeRow() en su lugar.
Se trata de una función sobrecargada.
Véase también takeRow().
void QFormLayout::removeRow(QWidget *widget)
Elimina la fila correspondiente a widget de este diseño de formulario.
Después de esta llamada, rowCount() se decrementa en uno. Todos los widgets y diseños anidados que ocupaban esta fila son eliminados. Esto incluye tanto el widget(s) de campo como la etiqueta, si la hubiera. Todas las filas siguientes se desplazan una fila hacia arriba y el espacio vertical liberado se redistribuye entre las filas restantes.
Puede utilizar esta función para deshacer una operación anterior de addRow() o insertRow():
QFormLayout *flay = ...; QPointer<QLineEdit> le = new QLineEdit; flay->insertRow(2, "User:", le); // later: flay->removeRow(le); // le == nullptr at this point
Si desea eliminar la fila del diseño sin borrar los widgets, utilice takeRow() en su lugar.
Esta función está sobrecargada.
Véase también takeRow().
int QFormLayout::rowCount() const
Devuelve el número de filas del formulario.
Véase también QLayout::count().
[override virtual] void QFormLayout::setGeometry(const QRect &rect)
Reimplementa: QLayout::setGeometry(const QRect &r).
void QFormLayout::setItem(int row, QFormLayout::ItemRole role, QLayoutItem *item)
Establece el elemento en el row dado para el role dado en item, ampliando el diseño con filas vacías si es necesario.
Si la celda ya está ocupada, el item no se inserta y se envía un mensaje de error a la consola. El item abarca ambas columnas.
Advertencia: No utilice esta función para añadir layouts hijos o elementos widget hijos. Utilice setLayout() o setWidget() en su lugar.
Véase también setLayout().
void QFormLayout::setLayout(int row, QFormLayout::ItemRole role, QLayout *layout)
Establece el sub-diseño en el row dado para el role dado a layout, extendiendo el diseño del formulario con filas vacías si es necesario.
Si la celda ya está ocupada, el layout no se inserta y se envía un mensaje de error a la consola.
Nota: Para la mayoría de las aplicaciones, debería utilizarse addRow() o insertRow() en lugar de setLayout().
Véase también setWidget().
[since 6.4] void QFormLayout::setRowVisible(int row, bool on)
Muestra la fila row si on es verdadero, en caso contrario oculta la fila.
row debe ser no negativo y menor que rowCount().
Esta función se introdujo en Qt 6.4.
Véase también isRowVisible(), removeRow(), y takeRow().
[since 6.4] void QFormLayout::setRowVisible(QLayout *layout, bool on)
Muestra la fila correspondiente a layout si on es verdadero, en caso contrario oculta la fila.
Se trata de una función sobrecargada.
Esta función se introdujo en Qt 6.4.
Véase también removeRow() y takeRow().
[since 6.4] void QFormLayout::setRowVisible(QWidget *widget, bool on)
Muestra la fila correspondiente a widget si on es verdadero, en caso contrario oculta la fila.
Se trata de una función sobrecargada.
Esta función se introdujo en Qt 6.4.
Véase también removeRow() y takeRow().
[override virtual] void QFormLayout::setSpacing(int spacing)
Reimplementa una función de acceso para la propiedad: QLayout::spacing.
Esta función establece tanto el espaciado vertical como el horizontal en spacing.
Véase también spacing(), setVerticalSpacing() y setHorizontalSpacing().
void QFormLayout::setWidget(int row, QFormLayout::ItemRole role, QWidget *widget)
Establece el widget en el row dado para el role dado a widget, extendiendo el diseño con filas vacías si es necesario.
Si la celda ya está ocupada, el widget no se inserta y se envía un mensaje de error a la consola.
Nota: Para la mayoría de las aplicaciones, debería utilizarse addRow() o insertRow() en lugar de setWidget().
Véase también setLayout().
[override virtual] QSize QFormLayout::sizeHint() const
Reimplementa: QLayoutItem::sizeHint() const.
[override virtual] int QFormLayout::spacing() const
Reimplementa una función de acceso a la propiedad: QLayout::spacing.
Si el espaciado vertical es igual al horizontal, esta función devuelve ese valor; en caso contrario, devuelve -1.
Véase también setSpacing(), verticalSpacing(), y horizontalSpacing().
[override virtual] QLayoutItem *QFormLayout::takeAt(int index)
Reimplementa: QLayout::takeAt(int índice).
QFormLayout::TakeRowResult QFormLayout::takeRow(int row)
Elimina el row especificado de este diseño de formulario.
row debe ser no negativo y menor que rowCount().
Nota: Esta función no borra nada.
Después de esta llamada, rowCount() se decrementa en uno. Todas las filas siguientes se desplazan una fila hacia arriba y el espacio vertical liberado se redistribuye entre las filas restantes.
Puede utilizar esta función para deshacer una llamada anterior a addRow() o insertRow():
QFormLayout *flay = ...; QPointer<QLineEdit> le = new QLineEdit; flay->insertRow(2, "User:", le); // later: QFormLayout::TakeRowResult result = flay->takeRow(2);
Si desea eliminar la fila del diseño y borrar los widgets, utilice removeRow() en su lugar.
Devuelve Una estructura que contiene tanto el widget como los elementos correspondientes de la etiqueta.
Véase también removeRow().
QFormLayout::TakeRowResult QFormLayout::takeRow(QLayout *layout)
Elimina el layout especificado de este diseño de formulario.
Nota: Esta función no borra nada.
Después de esta llamada, rowCount() se decrementa en uno. Todas las filas siguientes se desplazan una fila hacia arriba y el espacio vertical liberado se redistribuye entre las filas restantes.
QFormLayout *flay = ...; QPointer<QVBoxLayout> vbl = new QVBoxLayout; flay->insertRow(2, "User:", vbl); // later: QFormLayout::TakeRowResult result = flay->takeRow(widget);
Si desea eliminar la fila del diseño del formulario y borrar el diseño insertado, utilice removeRow() en su lugar.
Devuelve Una estructura que contiene tanto el widget como los elementos de diseño de la etiqueta correspondiente
Esta es una función sobrecargada.
Véase también removeRow().
QFormLayout::TakeRowResult QFormLayout::takeRow(QWidget *widget)
Elimina el widget especificado de este diseño de formulario.
Nota: Esta función no borra nada.
Después de esta llamada, rowCount() se decrementa en uno. Todas las filas siguientes se desplazan una fila hacia arriba y el espacio vertical liberado se redistribuye entre las filas restantes.
QFormLayout *flay = ...; QPointer<QLineEdit> le = new QLineEdit; flay->insertRow(2, "User:", le); // later: QFormLayout::TakeRowResult result = flay->takeRow(widget);
Si desea eliminar la fila del diseño y borrar los widgets, utilice removeRow() en su lugar.
Devuelve Una estructura que contiene tanto el widget como los elementos correspondientes de la etiqueta.
Esta es una función sobrecargada.
Véase también 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.



