PyQt5 表單佈局

可以使用 QFormLayout 類建立表單。這是建立視窗小控制元件(輸入)具有描述(標籤)的表單的最簡單方法。

在本文中,我們將向你展示如何使用 pyqt 建立表單。

![PyQt5 表單佈局](/img/Tutorial/PyQt5/PyQt5 Form Layout.png)

表單佈局示例

使用類 QFormLayout 建立表單佈局。我們可以使用 addRow 方法向表單新增行。該方法定義為

addRow(QWidget * label, QWidget * field)

我們使用兩個小控制元件呼叫該方法,其中第一個是標籤,第二個是小控制元件的型別。

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 - tastones.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_())