PyQt5 是一个用于创建桌面应用程序的 Python 绑定库,在 PyQt5 中,QFormLayout 是一种布局管理器,通常用于表单,它可以帮助你按照行和列来组织小部件(widgets)。

要在 PyQt5 中使用 QFormLayout 创建两列的布局,你需要首先导入必要的模块,然后创建一个窗口(通常是 QMainWindow 或 QWidget),再创建一个 QFormLayout 对象,并将其设置为窗口的布局,接着,你可以使用 QFormLayout 的 addRow 方法添加行,并指定行中的标签(label)和字段(field)。
下面是一个简单的例子,展示如何创建一个包含两列的 QFormLayout:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QFormLayout, QLabel, QLineEdit, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 设置窗口标题
self.setWindowTitle("PyQt5 QFormLayout 两列示例")
# 创建一个中央部件,并将其设置为窗口的 centralWidget
central_widget = QWidget()
self.setCentralWidget(central_widget)
# 创建一个 QFormLayout 对象
layout = QFormLayout()
# 设置此 QFormLayout 为中央部件的布局
central_widget.setLayout(layout)
# 添加第一行,包含两个字段
layout.addRow(QLabel("姓名:"), QLineEdit())
layout.addRow(QLabel("年龄:"), QLineEdit())
# 添加第二行,包含两个字段
layout.addRow(QLabel("性别:"), QLineEdit())
layout.addRow(QLabel("职业:"), QLineEdit())
if __name__ == "__main__":
app = QApplication(sys.argv)
main_win = MainWindow()
main_win.show()
sys.exit(app.exec_())
在上述代码中,我们创建了一个简单的 PyQt5 应用程序,其中主窗口包含一个 QFormLayout,该布局有两行,每行有两个字段:一个 QLabel 和一个 QLineEdit,QLabel 用作字段的标签,而 QLineEdit 是用户可以输入文本的地方。
通过运行这个程序,你将看到一个有四个标签和四个文本输入框的简单表单,每个标签和输入框都位于其自己的单元格中,形成两列布局。
要进一步自定义 QFormLayout,你可以使用以下方法:
setFieldGrowthPolicy(): 设置行中字段的扩展策略。
setRowWrapPolicy(): 设置布局是否应该在空间不足时换行。
setVerticalSpacing() 和 setHorizontalSpacing(): 设置行和列之间的间距。
setColumnCount(): 设置布局的列数(默认为两列)。
setRowDefaultSize(): 设置行的高度。
QFormLayout 是一个灵活且强大的布局管理器,非常适合创建具有多列的表单布局,通过合理地使用 addRow 方法和相关配置选项,你可以轻松地创建符合需求的界面布局。