PySide6.QtWidgets.QBoxLayout

class QBoxLayout

QBoxLayout 类将子部件水平或垂直排列。更多

PySide6.QtWidgets.QBoxLayout 的继承图

继承者: QVBoxLayout, QHBoxLayout

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

QBoxLayout 获取它从父布局或parentWidget()中得到的空间,将其划分为一行盒子,并使每个管理的部件填充一个盒子。

../../_images/qhboxlayout-with-5-children.png

如果QBoxLayout的方向是Qt::Horizontal,那么这些盒子将排成一行,并具有合适的大小。每个小部件(或其他盒子)将至少获得其最小大小,最多获得其最大大小。任何多余的空间将根据拉伸因子进行分配(更多内容见下文)。

../../_images/qvboxlayout-with-5-children.png

如果QBoxLayout的方向是Qt::Vertical,这些框将被放置在一列中,同样具有合适的大小。

创建QBoxLayout的最简单方法是使用其中一个便捷类,例如QHBoxLayout(用于Qt::Horizontal盒子)或QVBoxLayout(用于Qt::Vertical盒子)。你也可以直接使用QBoxLayout构造函数,指定其方向为LeftToRightRightToLeftTopToBottomBottomToTop

如果QBoxLayout不是顶级布局(即它不管理所有小部件的区域和子部件),你必须先将其添加到其父布局中,然后才能对其进行任何操作。添加布局的常规方法是通过调用parentLayout->addLayout()

完成此操作后,您可以使用以下四个函数之一将框添加到QBoxLayout中:

  • addWidget() 用于向 QBoxLayout 添加一个小部件并设置小部件的拉伸因子。(拉伸因子是沿着盒子行的。)

  • addSpacing() 用于创建一个空盒子;这是您用来创建美观且宽敞的对话框的函数之一。有关设置边距的方法,请参见下文。

  • addStretch() 用于创建一个空的、可拉伸的盒子。

  • addLayout() 用于向行中添加一个包含另一个 QLayout 的框,并设置该布局的拉伸因子。

使用 insertWidget()insertSpacing()insertStretch()insertLayout() 在布局的指定位置插入一个框。

QBoxLayout 还包括两个边距宽度:

  • setContentsMargins() 设置小部件每侧外边界的宽度。这是沿QBoxLayout 的四个边保留的空间的宽度。

  • setSpacing() 设置相邻框之间的宽度。(你可以使用 addSpacing() 在特定位置获得更多空间。)

边距默认值由样式提供。大多数Qt样式为子部件指定的默认边距为9,为窗口指定的默认边距为11。间距默认值与顶级布局的边距宽度相同,或者与父布局的边距宽度相同。

要从布局中移除一个小部件,调用 removeWidget()。在小部件上调用 hide() 也会有效地将该小部件从布局中移除,直到调用 show()

你几乎总是会想要使用QVBoxLayoutQHBoxLayout而不是QBoxLayout,因为它们有方便的构造函数。

class Direction

此类型用于确定盒子布局的方向。

常量

描述

QBoxLayout.LeftToRight

水平从左到右。

QBoxLayout.RightToLeft

水平方向从右到左。

QBoxLayout.TopToBottom

从上到下的垂直方向。

QBoxLayout.BottomToTop

垂直从下到上。

__init__(dir[, parent=None])
Parameters:

构造一个新的QBoxLayout,方向为dir,父部件为parent

布局直接设置为parent的顶级布局。一个部件只能有一个顶级布局。它由layout()返回。

另请参阅

direction() setLayout()

addLayout(layout[, stretch=0])
Parameters:
  • 布局QLayout

  • stretch – int

layout添加到盒子的末尾,具有序列拉伸因子stretch

另请参阅

insertLayout() addItem() addWidget()

addSpacerItem(spacerItem)
Parameters:

spacerItemQSpacerItem

spacerItem添加到此框布局的末尾。

另请参阅

addSpacing() addStretch()

addSpacing(size)
Parameters:

size – int

向此框布局的末尾添加一个不可拉伸的空间(一个QSpacerItem),大小为sizeQBoxLayout提供了默认的边距和间距。此函数添加额外的空间。

另请参阅

insertSpacing() addItem() QSpacerItem

addStretch([stretch=0])
Parameters:

stretch – 整数

在此框布局的末尾添加一个可拉伸的空间(一个QSpacerItem),其最小尺寸为零,拉伸因子为stretch

另请参阅

insertStretch() addItem() QSpacerItem

addStrut(size)
Parameters:

size – int

限制盒子的垂直尺寸(例如,如果盒子是LeftToRight,则为高度)至少为size。其他约束可能会增加此限制。

另请参阅

addItem()

addWidget(widget[, stretch=0[, alignment=Qt.Alignment()]])
Parameters:

widget添加到此框布局的末尾,拉伸因子为stretch,对齐方式为alignment

拉伸因子仅适用于QBoxLayout的方向,并且相对于此QBoxLayout中的其他框和小部件。具有较高拉伸因子的小部件和框会增长得更多。

如果拉伸因子为0,并且QBoxLayout中没有其他元素的拉伸因子大于零,则空间将根据涉及的每个小部件的QWidget :sizePolicy()进行分配。

对齐方式由alignment指定。默认对齐方式为0,这意味着小部件将填充整个单元格。

direction()
Return type:

方向

返回盒子的方向。addWidget()addSpacing() 在这个方向上工作;拉伸也是在这个方向上进行的。

insertItem(index, item)
Parameters:

item 插入到此盒布局中的位置 index。如果 index 为负数,则项目将添加在末尾。

insertLayout(index, layout[, stretch=0])
Parameters:
  • index – 整数

  • 布局QLayout

  • stretch – int

在位置 index 插入 layout,拉伸因子为 stretch。如果 index 为负数,则布局将添加到末尾。

layout 成为盒子布局的子元素。

另请参阅

addLayout() insertItem()

insertSpacerItem(index, spacerItem)
Parameters:

在位置 index 插入 spacerItem,具有零最小尺寸和拉伸因子。如果 index 为负数,则空间将添加在末尾。

insertSpacing(index, size)
Parameters:
  • index – 整数

  • size – int

在位置 index 插入一个不可拉伸的空间(一个 QSpacerItem),大小为 size。如果 index 为负数,则空间将添加到末尾。

盒子布局有默认的边距和间距。此函数添加额外的空间。

insertStretch(index[, stretch=0])
Parameters:
  • index – 整数

  • stretch – int

在位置 index 插入一个可伸缩的空间(一个 QSpacerItem),最小尺寸为零,伸缩因子为 stretch。如果 index 为负数,则空间将添加到末尾。

insertWidget(index, widget[, stretch=0[, alignment=Qt.Alignment()]])
Parameters:

在位置 index 插入 widget,拉伸因子为 stretch,对齐方式为 alignment。如果 index 为负数,则小部件将添加到末尾。

拉伸因子仅适用于QBoxLayout的方向,并且相对于此QBoxLayout中的其他框和小部件。具有较高拉伸因子的小部件和框会增长得更多。

如果拉伸因子为0,并且QBoxLayout中没有其他元素的拉伸因子大于零,则空间将根据涉及的每个小部件的QWidget :sizePolicy()进行分配。

对齐方式由alignment指定。默认对齐方式为0,这意味着小部件将填充整个单元格。

另请参阅

addWidget() insertItem()

setDirection(direction)
Parameters:

方向Direction

设置此布局的方向为 direction

另请参阅

direction()

setStretch(index, stretch)
Parameters:
  • index – 整数

  • stretch – int

设置位置 index 的拉伸因子为 stretch

另请参阅

stretch()

setStretchFactor(l, stretch)
Parameters:
Return type:

布尔

这是一个重载函数。

将布局 layout 的拉伸因子设置为 stretch,如果在此布局中找到 layout(不包括子布局),则返回 true;否则返回 false

setStretchFactor(w, stretch)
Parameters:
Return type:

布尔

widget的拉伸因子设置为stretch,如果在此布局中找到widget(不包括子布局),则返回true;否则返回false

另请参阅

setAlignment()

stretch(index)
Parameters:

索引 – int

Return type:

整数

返回位置 index 处的拉伸因子。

另请参阅

setStretch()