You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何用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_())

说明:

  1. 代码使用QGridLayout来排列标签和输入框,每个标签在左(列0)、输入框在右(列1),按行依次添加
  2. 底部的提交/重置按钮用QHBoxLayout做水平排列,然后添加到网格的最后一行,跨两列显示
  3. 运行前确保已经安装PyQt5:pip install pyqt5
  4. 你可以根据需求增加/减少行,或者调整控件类型(比如换成QComboBox、QTextEdit等)

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:35:26