求助:如何用GridLayout实现指定样式GUI?求示例代码
Qt GridLayout 实现表单界面示例代码
以下是基于PyQt5的完整可运行代码,直接复制就能生成类似你需要的表单界面:
import sys from PyQt5.QtWidgets import (QApplication, QWidget, QGridLayout, QLabel, QLineEdit, QPushButton, QHBoxLayout) class FormWindow(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # 设置窗口标题和初始大小 self.setWindowTitle('表单示例') self.resize(400, 250) # 创建网格布局 grid_layout = QGridLayout() # 设置控件间距 grid_layout.setSpacing(10) # 添加标签和输入框到网格 # 第一行 grid_layout.addWidget(QLabel('姓名:'), 0, 0) grid_layout.addWidget(QLineEdit(), 0, 1) # 第二行 grid_layout.addWidget(QLabel('邮箱:'), 1, 0) grid_layout.addWidget(QLineEdit(), 1, 1) # 第三行 grid_layout.addWidget(QLabel('电话:'), 2, 0) grid_layout.addWidget(QLineEdit(), 2, 1) # 第四行 grid_layout.addWidget(QLabel('地址:'), 3, 0) grid_layout.addWidget(QLineEdit(), 3, 1) # 创建按钮布局 btn_layout = QHBoxLayout() btn_layout.addStretch(1) btn_layout.addWidget(QPushButton('提交')) btn_layout.addWidget(QPushButton('重置')) # 将按钮布局添加到网格的最后一行,跨两列 grid_layout.addLayout(btn_layout, 4, 0, 1, 2) # 设置窗口主布局 self.setLayout(grid_layout) if __name__ == '__main__': app = QApplication(sys.argv) window = FormWindow() window.show() sys.exit(app.exec_())
说明:
- 代码使用
QGridLayout来排列标签和输入框,每个标签在左(列0)、输入框在右(列1),按行依次添加 - 底部的提交/重置按钮用
QHBoxLayout做水平排列,然后添加到网格的最后一行,跨两列显示 - 运行前确保已经安装PyQt5:
pip install pyqt5 - 你可以根据需求增加/减少行,或者调整控件类型(比如换成QComboBox、QTextEdit等)
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

