PyQt5最全77 布局之QFormLayout表单布局: 表单设计

本文深入探讨PyQt5的QFormLayout,讲解如何使用addRow方法创建和管理表单布局,助你实现专业的GUI表单设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PyQt5最全77 布局之QFormLayout表单布局: 表单设计

import sys
from PyQt5.QtWidgets import *


class FormLayout(QWidget):
    """
    表单布局: 表单设计
    QFormLayout()
    即利用表单布局完成和上节同样的表单布局
    """

    def __init__(self):
        super
### PyQt5 多种布局方式介绍 #### 1. 基本概念 PyQt5 提供了几种不同的布局管理器来帮助开发者创建复杂的图形用户界面 (GUI),这些布局管理器可以自动调整控件的位置和大小,使得应用程序能够适应不同尺寸的窗口。 #### 2. QHBoxLayout 和 QVBoxLayout `QHBoxLayout` 将子部件水平排列,而 `QVBoxLayout` 则垂直排列。这两种布局是最基本也是最常用的布局形式之一[^4]。 ```python from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QHBoxLayout app = QApplication([]) window = QWidget() layout = QVBoxLayout() top_layout = QHBoxLayout() button1 = QPushButton('Button 1') button2 = QPushButton('Button 2') top_layout.addWidget(button1) top_layout.addWidget(button2) bottom_button = QPushButton('Bottom Button') layout.addLayout(top_layout) layout.addWidget(bottom_button) window.setLayout(layout) window.show() app.exec_() ``` #### 3. QGridLayout `QGridLayout` 可以将空间划分为网格状结构,在每个单元格内放置相应的组件。这种布局非常适合用来构建表单或者其他需要精确位置控制的情况[^4]。 ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QGridLayout class GridForm(QWidget): def __init__(self): super().__init__() grid = QGridLayout() names = ['First Name', 'Last Name'] positions = [(i,j) for i in range(2) for j in range(2)] for position, name in zip(positions, names): label = QLabel(name) line_edit = QLineEdit() grid.addWidget(label, *position) grid.addWidget(line_edit, position[0], position[1]+1) self.setLayout(grid) self.setWindowTitle('Grid Layout Example') if __name__ == '__main__': app = QApplication(sys.argv) ex = GridForm() ex.show() sys.exit(app.exec_()) ``` #### 4. QFormLayout 专门用于设计数据输入表格类型的界面,它会自动生成两列式的布局——左边一列表示标签,右边则是对应的编辑框或其他交互元素[^4]。 ```python from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QFormLayout app = QApplication([]) form_widget = QWidget() form_layout = QFormLayout(form_widget) first_name_label = QLabel("First Name:") last_name_label = QLabel("Last Name:") first_name_input = QLineEdit() last_name_input = QLineEdit() form_layout.addRow(first_name_label, first_name_input) form_layout.addRow(last_name_label, last_name_input) form_widget.show() app.exec_() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值