class QBoxLayout#

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

Inheritance diagram of PySide6.QtWidgets.QBoxLayout

继承自: QVBoxLayout, QHBoxLayout

概览#

方法#

注意

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

详细描述#

QBoxLayout 接收其从父布局或从parentWidget() 返回的空间),将其分成一系列盒子,并使每个管理的控件填充一个盒子。

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

如果QBoxLayout 的方向是 Qt::Horizontal,则盒子将按适宜的尺寸排成一排。每个控件(或其他盒子)将至少获得其最小尺寸,至多获得其最大尺寸。任何额外的空间将根据扩展因子共享(关于这一点在下面会有更多讨论)。

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

如果QBoxLayout 的方向是 Qt::Vertical,则盒子将按适宜的大小排成一列。

创建一个 QBoxLayout 的最简单方法之一是使用便捷类之一,例如 QHBoxLayout(用于水平框)或 QVBoxLayout(用于垂直框)。您还可以直接使用 QBoxLayout 构造函数,指定其方向为 LeftToRight(从左到右), RightToLeft(从右到左), TopToBottom(从上到下)或 BottomToTop(从下到上)。

如果 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.FromLeftToRight

水平从左到右。

QBoxLayout.FromRightToLeft

水平从右到左。

QBoxLayout.FromTopToBottom

垂直从上到下。

QBoxLayout.FromBottomToTop

从下到上垂直。

__init__(arg__1[, parent=None])#
参数:

构造一个具有方向 dir 和父窗口 parent 的新 QBoxLayout

布局直接设置为 parent 的顶级布局。一个窗口只能有一个顶级布局。可以通过 layout() 方法获取。

另请参阅

direction() setLayout()

addLayout(layout[, stretch=0])#
参数:
  • layout - QLayout

  • stretch - 整数

layout 添加到框的末尾,具有序列扩展因子 stretch

另请参阅

insertLayout() addItem() addWidget()

addSpacerItem(spacerItem)#
参数:

spacerItem - QSpacerItem

spacerItem 添加到这个框布局的末尾。

另请参阅

addSpacing() addStretch()

addSpacing(size)#
参数:

size - 整数

在当前盒式布局的末尾添加一个不可伸缩的空间(一个QSpacerItem)。其大小为sizeQBoxLayout提供默认边距和间距。此函数添加额外的空间。

另请参阅

insertSpacing() addItem() QSpacerItem

addStretch([stretch=0])#
参数:

stretch - 整数

在当前盒式布局的末尾添加一个可伸缩的空间(一个QSpacerItem),其最小大小为零和伸缩因子stretch

另请参阅

insertStretch() addItem() QSpacerItem

addStrut(arg__1)#
参数:

arg__1 – int

将盒式布局的垂直尺寸(例如,如果盒式布局方向为LeftToRight则为高度)限制为最小size。其他约束可能会增加此限制。

另请参阅

addItem()

addWidget(arg__1[, stretch=0[, alignment=Qt.Alignment()]])#
参数:
  • arg__1QWidget

  • stretch - 整数

  • alignmentAlignmentFlag的组合

widget添加到当前盒式布局的末尾,带有伸缩因子stretch和对齐方式alignment

伸缩因子仅在directionQBoxLayout中应用,并且相对于此QBoxLayout中的其他盒式和控件。伸缩因子较高的控件和盒式会增长得更多。

如果拉伸因子为 0,并且 QBoxLayout 中没有其他有大于零的拉伸因子的项,则空间将根据每个参与 widget 的 QWidget :sizePolicy() 分布。

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

direction()#
返回类型:

方向

返回盒子的方向。在此方向上,addWidget()addSpacing() 作用;拉伸也在此方向上。

insertItem(index, arg__2)#
参数:

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

insertLayout(index, layout[, stretch=0])#
参数:
  • index – int

  • layout - QLayout

  • stretch - 整数

在指定位置 index 插入 layout,并具有拉伸因子 stretch。如果 index 为负值,则布局将被添加到末尾。

layout 成为框布局的子布局。

另请参阅

addLayout() insertItem()

insertSpacerItem(index, spacerItem)#
参数:

在指定位置 index 插入 spacerItem,最小尺寸为零,拉伸因子为零。如果 index 为负值,则空间将被添加到末尾。

insertSpacing(index, size)#
参数:
  • index – int

  • size - 整数

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

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

insertStretch(index[, stretch=0])#
参数:
  • index – int

  • stretch - 整数

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

insertWidget(index, widget[, stretch=0[, alignment=Qt.Alignment()]])#
参数:
  • index – int

  • widgetQWidget

  • stretch - 整数

  • alignmentAlignmentFlag的组合

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

伸缩因子仅在directionQBoxLayout中应用,并且相对于此QBoxLayout中的其他盒式和控件。伸缩因子较高的控件和盒式会增长得更多。

如果拉伸因子为 0,并且 QBoxLayout 中没有其他有大于零的拉伸因子的项,则空间将根据每个参与 widget 的 QWidget :sizePolicy() 分布。

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

另请参阅

addWidget() insertItem()

setDirection(arg__1)#
参数:

arg__1 - Direction

设置此布局的方向为 direction

另请参阅

direction()

setStretch(index, stretch)#
参数:
  • index – int

  • stretch - 整数

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

另请参阅

stretch()

setStretchFactor(l, stretch)#
参数:
返回类型:

bool

这是一个重载函数。

设置布局 layout 的扩展因子为 stretch,并且如果 layout 被找到在该布局中(不包括子布局),则返回 true;否则返回 false

setStretchFactor(w, stretch)
参数:
返回类型:

bool

设置 widget 的扩展因子为 stretch。如果 widget 被找到在该布局中(不包括子布局),则返回 true;否则返回 false

另请参阅

setAlignment()

stretch(index)#
参数:

index – int

返回类型:

int

返回位置 index 的扩展因子。

另请参阅

setStretch()