addWidget ():向垂直布局中添加控件,传入 QWidget 对象,可选stretch(拉伸因子)、alignment(对齐方式),如addWidget(btn, stretch=1, alignment=Qt.AlignCenter),是布局添加控件的核心方法。
addLayout ():向垂直布局中嵌套其他布局(如 QHBoxLayout、QVBoxLayout),传入 QLayout 对象,可选stretch参数,实现布局嵌套,构建复杂界面结构。
insertWidget ():在指定索引位置插入控件,参数为(索引, 控件, stretch=0, alignment=Qt.AlignLeft),精准控制控件的插入位置(如在第 0 位插入标题控件)。
insertLayout ():在指定索引位置插入子布局,参数为(索引, 布局, stretch=0),精准嵌套子布局到垂直布局的指定位置。
addSpacing ():添加固定像素的空白间距,传入整数(如addSpacing(20)),用于控件间的间距调整,提升界面美观度。
addStretch ():添加可拉伸的空白占位符,可选stretch参数(拉伸因子),如addStretch(1),可将控件推到布局顶部 / 底部,实现自适应垂直布局。
insertSpacing ():在指定索引位置插入固定间距,参数为(索引, 像素值),精准控制某一位置的控件间距。
insertStretch ():在指定索引位置插入可拉伸占位符,参数为(索引, stretch=1),精准调整布局的拉伸空间分配。
removeWidget ():从布局中移除指定控件,传入 QWidget 对象(仅解除布局关联,不会删除控件,需手动隐藏 / 销毁)。
removeItem ():从布局中移除指定布局项(子布局、间距、拉伸项),传入 QLayoutItem 对象,清空指定布局元素。
takeAt ():移除并返回指定索引位置的布局项,返回 QLayoutItem 对象,可用于动态删除布局项并回收资源。
count ():获取布局中所有布局项(控件、子布局、间距、拉伸)的总数,返回 int 类型,用于遍历或校验布局项数量。
setSpacing ():设置布局内所有控件 / 子布局之间的统一垂直间距,传入整数(如setSpacing(15)),批量调整全局间距。
spacing ():获取当前设置的全局垂直间距值,返回 int 类型,校验间距配置。
setContentsMargins ():设置布局的外边框边距(左、上、右、下),传入四个整数(如setContentsMargins(10, 10, 10, 10)),控制布局与父控件的间距。
contentsMargins ():获取布局的外边框边距,返回 QMargins 对象,可通过.left()/.top()等提取单个方向的边距值。
setStretchFactor ():为指定控件 / 子布局设置拉伸因子,参数为(目标对象, 拉伸值),如setStretchFactor(btn, 2),控制布局空间的分配比例(值越大占比越高)。
stretchFactor ():获取指定控件 / 子布局的拉伸因子,返回 int 类型,读取拉伸比例配置。
setAlignment ():设置布局内所有控件的统一对齐方式,传入 Qt.Alignment 枚举值(如Qt.AlignHCenter水平居中、Qt.AlignTop顶部对齐),批量调整控件对齐。
alignWidget ():为单个控件设置对齐方式,参数为(控件, 对齐方式),精准调整单个控件的对齐(优先级高于全局对齐)。
itemAt ():根据索引获取布局项对象,返回 QLayoutItem 实例,可通过itemAt(0).widget()提取第 0 位的控件对象。
widgetAt ():根据索引直接获取对应的控件对象,返回 QWidget 实例(仅该位置为控件时有效),快速读取布局内的控件。
clear ():清空布局中所有布局项(仅移除关联,不删除控件),快速重置布局结构。
invalidate ():标记布局为无效,触发重新计算布局尺寸和位置,适配控件尺寸 / 位置动态修改后的即时更新。
setEnabled ():设置布局是否启用,True 为正常布局(控件按规则排列)、False 为禁用(控件位置固定),控制布局的生效状态。
addWidget ():向水平布局中添加控件,传入 QWidget 对象,可选stretch(拉伸因子)、alignment(对齐方式),如addWidget(btn, stretch=1, alignment=Qt.AlignVCenter),是布局添加控件的核心方法。
addLayout ():向水平布局中嵌套其他布局(如 QVBoxLayout、QHBoxLayout),传入 QLayout 对象,可选stretch参数,实现布局嵌套(如水平布局中嵌套垂直布局放一组按钮),构建复杂界面结构。
insertWidget ():在指定索引位置插入控件,参数为(索引, 控件, stretch=0, alignment=Qt.AlignLeft),精准控制控件插入位置(如在第 1 位插入分隔线控件)。
insertLayout ():在指定索引位置插入子布局,参数为(索引, 布局, stretch=0),精准嵌套子布局到水平布局的指定位置(如在输入框右侧插入垂直布局)。
addSpacing ():添加固定像素的水平空白间距,传入整数(如addSpacing(15)),用于控件间的间距调整,提升界面美观度。
addStretch ():添加可拉伸的空白占位符,可选stretch参数(拉伸因子),如addStretch(2),可将控件推到布局左侧 / 右侧,实现自适应水平布局(如让按钮靠右显示)。
insertSpacing ():在指定索引位置插入固定水平间距,参数为(索引, 像素值),精准控制某一位置的控件间距(如在搜索框和搜索按钮间插 10 像素间距)。
insertStretch ():在指定索引位置插入可拉伸占位符,参数为(索引, stretch=1),精准调整布局的拉伸空间分配(如在布局开头插拉伸项让所有控件靠右)。
removeWidget ():从布局中移除指定控件,传入 QWidget 对象(仅解除布局关联,不会删除控件,需手动隐藏 / 销毁)。
removeItem ():从布局中移除指定布局项(子布局、间距、拉伸项),传入 QLayoutItem 对象,清空指定布局元素。
takeAt ():移除并返回指定索引位置的布局项,返回 QLayoutItem 对象,可用于动态删除布局项并回收资源(如takeAt(0)移除第一个布局项)。
count ():获取布局中所有布局项(控件、子布局、间距、拉伸)的总数,返回 int 类型,用于遍历或校验布局项数量。
setSpacing ():设置布局内所有控件 / 子布局之间的统一水平间距,传入整数(如setSpacing(10)),批量调整全局水平间距。
spacing ():获取当前设置的全局水平间距值,返回 int 类型,校验间距配置是否符合预期。
setContentsMargins ():设置布局的外边框边距(左、上、右、下),传入四个整数(如setContentsMargins(8, 8, 8, 8)),控制布局与父控件的间距(如布局离窗口边缘的距离)。
contentsMargins ():获取布局的外边框边距,返回 QMargins 对象,可通过.left()/.top()等提取单个方向的边距值(如contentsMargins().right()获取右边距)。
setStretchFactor ():为指定控件 / 子布局设置拉伸因子,参数为(目标对象, 拉伸值),如setStretchFactor(input_edit, 3),控制水平空间的分配比例(值越大占比越高)。
stretchFactor ():获取指定控件 / 子布局的拉伸因子,返回 int 类型,读取拉伸比例配置(如确认输入框的拉伸因子是否为 3)。
setAlignment ():设置布局内所有控件的统一对齐方式,传入 Qt.Alignment 枚举值(如Qt.AlignVCenter垂直居中、Qt.AlignBottom底部对齐),批量调整控件在垂直方向的对齐。
alignWidget ():为单个控件设置对齐方式,参数为(控件, 对齐方式),精准调整单个控件的对齐(优先级高于全局对齐,如让某个按钮垂直顶部对齐)。
itemAt ():根据索引获取布局项对象,返回 QLayoutItem 实例,可通过itemAt(1).widget()提取第 1 位的控件对象(如获取第二个控件)。
widgetAt ():根据索引直接获取对应的控件对象,返回 QWidget 实例(仅该位置为控件时有效),快速读取布局内的控件(如widgetAt(0)获取第一个控件)。
clear ():清空布局中所有布局项(仅移除关联,不删除控件),快速重置水平布局结构(如切换界面时清空布局)。
invalidate ():标记布局为无效,触发重新计算布局尺寸和位置,适配控件尺寸 / 位置动态修改后的即时更新(如控件内容变化后重新布局)。
setEnabled ():设置布局是否启用,True 为正常布局(控件按水平规则排列)、False 为禁用(控件位置固定),控制布局的生效状态。
addWidget ():向网格指定位置添加控件,是布局最核心的方法。完整参数为addWidget(控件, 行号, 列号, 行跨度, 列跨度, 对齐方式),基础用法如addWidget(btn, 0, 0)(0 行 0 列添加按钮),跨行列用法如addWidget(label, 1, 0, 1, 2)(1 行 0 列添加标签,跨 1 行 2 列)。
addLayout ():向网格指定位置嵌套子布局(如 QHBoxLayout/QVBoxLayout),参数为addLayout(子布局, 行号, 列号, 行跨度, 列跨度),如addLayout(h_layout, 2, 1, 1, 3),实现网格内嵌套复杂布局结构。
insertWidget ():在指定行 / 列位置插入控件,参数为insertWidget(行号, 列号, 控件, 行跨度=1, 列跨度=1, 对齐方式=Qt.AlignLeft),精准插入控件且不覆盖原有布局项。
insertLayout ():在指定行 / 列位置插入子布局,参数为insertLayout(行号, 列号, 子布局, 行跨度=1, 列跨度=1),精准嵌套子布局到网格指定位置。
addItem ():向网格添加自定义布局项(如 QSpacerItem 空白占位项),参数为addItem(布局项, 行号, 列号, 行跨度, 列跨度),用于手动调整网格空白区域。
removeWidget ():从网格布局中移除指定控件,传入 QWidget 对象(仅解除布局关联,不会删除控件,需手动隐藏 / 销毁)。
takeAt ():移除并返回指定索引的布局项,返回 QLayoutItem 对象,索引按「行优先」排序(0 行 0 列→0 行 1 列→1 行 0 列…),用于动态删除布局项并回收资源。
count ():获取网格布局中所有布局项(控件、子布局、占位项)的总数,返回 int 类型,用于遍历或校验布局项数量。
setRowStretch ():设置指定行的拉伸因子,参数为setRowStretch(行号, 拉伸值),如setRowStretch(0, 2),拉伸值越大,该行分配到的垂直空间越多。
rowStretch ():获取指定行的拉伸因子,返回 int 类型,校验行的拉伸比例配置。
setColumnStretch ():设置指定列的拉伸因子,参数为setColumnStretch(列号, 拉伸值),如setColumnStretch(1, 3),拉伸值越大,该列分配到的水平空间越多。
columnStretch ():获取指定列的拉伸因子,返回 int 类型,校验列的拉伸比例配置。
setSpacing ():设置网格内所有单元格之间的统一间距(行间距 + 列间距),传入整数(如setSpacing(10)),批量调整全局间距。
setRowSpacing ():设置指定两行之间的垂直间距,参数为setRowSpacing(行号, 像素值),如setRowSpacing(0, 15),精准调整某一行的垂直间距。
setColumnSpacing ():设置指定两列之间的水平间距,参数为setColumnSpacing(列号, 像素值),如setColumnSpacing(1, 20),精准调整某一列的水平间距。
spacing ():获取全局网格间距值,返回 int 类型;rowSpacing(行号)/columnSpacing(列号)可分别获取指定行 / 列的间距。
setContentsMargins ():设置布局的外边框边距(左、上、右、下),传入四个整数(如setContentsMargins(10, 10, 10, 10)),控制布局与父控件的间距。
contentsMargins ():获取布局外边框边距,返回 QMargins 对象,可通过.left()/.top()等提取单个方向的边距值。
rowCount ():获取网格布局的总行数,返回 int 类型,用于遍历行或校验网格行数。
columnCount ():获取网格布局的总列数,返回 int 类型,用于遍历列或校验网格列数。
itemAtPosition ():根据行号和列号获取对应位置的布局项,返回 QLayoutItem 对象,如itemAtPosition(0, 0)获取 0 行 0 列的布局项,可通过.widget()提取控件。
widgetAt ():根据行号和列号直接获取对应位置的控件,返回 QWidget 实例(仅该位置为控件时有效),快速读取网格内的控件。
setAlignment ():设置布局内所有控件的统一对齐方式,传入 Qt.Alignment 枚举值(如Qt.AlignCenter居中、Qt.AlignTop顶部对齐),批量调整控件对齐。
setAlignment (控件 / 布局,对齐方式):为单个控件 / 子布局设置对齐方式,如setAlignment(btn, Qt.AlignRight),优先级高于全局对齐。
setRowMinimumHeight ():设置指定行的最小高度,参数为setRowMinimumHeight(行号, 像素值),如setRowMinimumHeight(1, 40),防止行被过度压缩。
setColumnMinimumWidth ():设置指定列的最小宽度,参数为setColumnMinimumWidth(列号, 像素值),如setColumnMinimumWidth(0, 100),防止列被过度压缩。
removeRow ():删除指定行,参数为removeRow(行号),该行所有布局项被移除,后续行自动上移。
removeColumn ():删除指定列,参数为removeColumn(列号),该列所有布局项被移除,后续列自动左移。
clear ():清空网格布局中所有布局项(仅移除关联,不删除控件),快速重置网格结构。
invalidate ():标记布局为无效,触发重新计算网格尺寸和控件位置,适配控件尺寸 / 位置动态修改后的即时更新。
addRow ():添加一行表单(标签 + 字段),是布局最核心的方法,支持三种灵活用法:
文本标签 + 字段:addRow("用户名:", QLineEdit())(自动创建 QLabel 作为标签);
控件标签 + 字段:addRow(QLabel("密码:"), QLineEdit())(自定义标签控件);
仅字段:addRow(QPushButton("提交"))(整行占两列,无标签)。
insertRow ():在指定索引位置插入一行表单,参数为insertRow(索引, 标签/文本, 字段控件),如insertRow(0, "手机号:", QLineEdit()),精准插入行且不覆盖原有内容。
removeRow ():删除指定索引的行,参数为removeRow(索引),该行控件仅解除布局关联(不删除),后续行自动上移(如删除多余的表单项)。
takeRow ():移除并返回指定索引的行,返回QFormLayout::RowItem对象,可回收该行的标签 / 字段控件(如takeRow(1)获取第二行控件并移除)。
rowCount ():获取表单布局的总行数,返回 int 类型,用于遍历表单行、校验表单项数量(如判断是否有未填写的行)。
setWidget ():修改指定行的标签 / 字段控件,参数为setWidget(行号, 角色, 控件),角色可选QFormLayout.LabelRole(标签列)/FieldRole(字段列),如setWidget(0, QFormLayout.FieldRole, QLineEdit("默认值"))。
widget ():获取指定行的标签 / 字段控件,参数为widget(行号, 角色),返回 QWidget 实例,如widget(0, QFormLayout.LabelRole)获取第一行标签控件。
setLabelAlignment ():设置所有标签列的统一对齐方式,传入 Qt.Alignment 枚举值(如Qt.AlignRight | Qt.AlignVCenter),如setLabelAlignment(Qt.AlignRight)让所有标签右对齐,是表单美观的核心配置。
labelAlignment ():获取标签列的对齐方式,返回 Qt.Alignment 枚举值,校验标签对齐规则是否符合预期。
setFormAlignment ():设置整个表单布局相对于父控件的对齐方式,传入 Qt.Alignment 枚举值(如Qt.AlignCenter居中、Qt.AlignTop顶部对齐),控制表单整体位置。
formAlignment ():获取表单整体的对齐方式,返回 Qt.Alignment 枚举值,校验表单在父控件中的布局位置。
setFieldGrowthPolicy ():设置字段列的拉伸策略,核心可选值:
QFormLayout.FieldsStayAtSizeHint(字段保持默认尺寸);
ExpandingFieldsGrow(可扩展字段自动拉伸,默认);
AllNonFixedFieldsGrow(所有非固定字段拉伸),控制字段列是否自适应宽度。
fieldGrowthPolicy ():获取字段列的拉伸策略,返回对应的枚举值,校验字段宽度的自适应规则。
setRowWrapPolicy ():设置行的换行策略(适配窄界面),核心可选值:
QFormLayout.DontWrapRows(不换行,标签 + 字段同行,默认);
WrapLongRows(长标签自动换行到字段上方);
WrapAllRows(所有标签换行到字段上方),解决窄窗口下表单显示拥挤的问题。
rowWrapPolicy ():获取行的换行策略,返回对应的枚举值,校验表单的换行规则。
setSpacing ():设置表单内行与行之间的垂直间距,传入整数(如setSpacing(12)),批量调整全局行间距。
spacing ():获取行之间的垂直间距值,返回 int 类型,校验行间距配置。
setHorizontalSpacing ():设置标签列与字段列之间的水平间距,传入整数(如setHorizontalSpacing(15)),精准调整两列的间距(比全局 spacing 更精细化)。
horizontalSpacing ():获取标签与字段列的水平间距,返回 int 类型,校验列间距配置。
setVerticalSpacing ():等同于setSpacing(),专门设置垂直行间距,参数为整数,语义更清晰(如setVerticalSpacing(10))。
verticalSpacing ():获取垂直行间距,返回 int 类型,与spacing()效果一致。
setContentsMargins ():设置布局的外边框边距(左、上、右、下),传入四个整数(如setContentsMargins(10, 10, 10, 10)),控制表单与父控件的间距(如表单离窗口边缘的距离)。
contentsMargins ():获取外边框边距,返回 QMargins 对象,可通过.left()/.top()等提取单个方向的边距值。
setRowMinimumHeight ():设置指定行的最小高度,参数为setRowMinimumHeight(行号, 像素值),如setRowMinimumHeight(2, 40),防止行被过度压缩(如字段是多行输入框时)。
rowMinimumHeight ():获取指定行的最小高度,返回 int 类型,校验行高是否满足显示需求。
setItem ():修改指定行的标签 / 字段布局项,参数为setItem(行号, 角色, 布局项),如setItem(1, QFormLayout.FieldRole, QSpacerItem(10, 10)),自定义空白占位项。
item ():获取指定行的标签 / 字段布局项,参数为item(行号, 角色),返回 QLayoutItem 对象,用于高级布局调整。
clear ():清空表单布局中所有行(仅解除布局关联,不删除控件),快速重置表单结构(如表单提交后清空内容时使用)。
invalidate ():标记布局为无效,触发重新计算表单尺寸和控件位置,适配控件动态修改后的即时更新(如字段内容变化、标签文本修改后)。
setAlignment (控件,对齐方式):为单个控件(标签 / 字段)设置对齐方式,如setAlignment(username_edit, Qt.AlignLeft),优先级高于全局对齐规则。