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