PyQt - Clase QFormLayout

QFormLayoutes una forma conveniente de crear un formulario de dos columnas, donde cada fila consta de un campo de entrada asociado con una etiqueta. Como convención, la columna de la izquierda contiene la etiqueta y la columna de la derecha contiene un campo de entrada. Principalmente se utilizan tres sobrecargas del método addRow () addLayout ().

No Señor. Métodos y descripción
1

addRow(QLabel, QWidget)

Agrega una fila que contiene la etiqueta y el campo de entrada

2

addRow(QLabel, QLayout)

Agrega un diseño secundario en la segunda columna

3

addRow(QWidget)

Agrega un widget que abarca ambas columnas.

Ejemplo

Este código agrega un campo LineEdit para ingresar el nombre en la primera fila. Luego agrega un diseño de cuadro vertical para dos campos de dirección en la segunda columna de la siguiente fila. A continuación, se agrega un objeto de diseño de cuadro horizontal que contiene dos campos de botón de opción en la segunda columna de la tercera fila. La cuarta fila muestra dos botones 'Enviar' y 'Cancelar'.

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   l1 = QLabel("Name")
   nm = QLineEdit()

   l2 = QLabel("Address")
   add1 = QLineEdit()
   add2 = QLineEdit()
   fbox = QFormLayout()
   fbox.addRow(l1,nm)
   vbox = QVBoxLayout()

   vbox.addWidget(add1)
   vbox.addWidget(add2)
   fbox.addRow(l2,vbox)
   hbox = QHBoxLayout()

   r1 = QRadioButton("Male")
   r2 = QRadioButton("Female")
   hbox.addWidget(r1)
   hbox.addWidget(r2)
   hbox.addStretch()
   fbox.addRow(QLabel("sex"),hbox)
   fbox.addRow(QPushButton("Submit"),QPushButton("Cancel"))

   win.setLayout(fbox)
   
   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

El código anterior produce la siguiente salida: