Reading about Python? Actually practice it. Try PyChallenge free

Python Tutorial

PyQt5 Form Layout

A form can be created using the class QFormLayout. This is the easiest way to create a form where widgets (input) have descriptions (labels).

In this article we'll show you how to create a form with pyqt.

form layout

Related course:
Practice Python with interactive exercises

Form Layout Example The Form Layout is created using the class QFormLayout. We can add rows to the form using the method addRow. The method is defined as

addRow(QWidget * label, QWidget * field)

We call the method using two widgets where the first is the label and the second the type of widget.

from PyQt5.QtWidgets import (QApplication, QComboBox, QDialog,
QDialogButtonBox, QFormLayout, QGridLayout, QGroupBox, QHBoxLayout,
QLabel, QLineEdit, QMenu, QMenuBar, QPushButton, QSpinBox, QTextEdit,
QVBoxLayout)

import sys

class Dialog(QDialog): NumGridRows = 3 NumButtons = 4

def __init__(self): super(Dialog, self).__init__() self.createFormGroupBox() buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) buttonBox.accepted.connect(self.accept) buttonBox.rejected.connect(self.reject) mainLayout = QVBoxLayout() mainLayout.addWidget(self.formGroupBox) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) self.setWindowTitle("Form Layout - pythonspot.com") def createFormGroupBox(self): self.formGroupBox = QGroupBox("Form layout") layout = QFormLayout() layout.addRow(QLabel("Name:"), QLineEdit()) layout.addRow(QLabel("Country:"), QComboBox()) layout.addRow(QLabel("Age:"), QSpinBox()) self.formGroupBox.setLayout(layout)

if __name__ == '__main__': app = QApplication(sys.argv) dialog = Dialog() sys.exit(dialog.exec_())

BackNext