class QSplitter#

QSplitter 类实现了一个分割小部件。 更多信息

Inheritance diagram of PySide6.QtWidgets.QSplitter

概览#

属性#

方法#

虚方法#

信号#

说明

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

详细描述#

警告

本节包含从C++自动翻译到Python的片段,可能包含错误。

分割器允许用户通过拖动它们之间的边界来控制子小部件的大小。一个分割器可以控制任意数量的小部件。典型的QSplitter使用是在创建一些小部件后,使用insertWidget()addWidget()将它们添加。

以下示例将展示一个QListViewQTreeViewQTextEdit并排显示,其中包含两个分割器手柄。

splitter = QSplitter(parent)
listview = QListView()
treeview = QTreeView()
textedit = QTextEdit()
splitter.addWidget(listview)
splitter.addWidget(treeview)
splitter.addWidget(textedit)

如果在调用insertWidget()addWidget()时,小部件已经包含在一个QSplitter中,它将移动到新的位置。这可以在之后重新排列分割器中的小部件。您可以使用indexOf()widget()count()访问分割器内部的小部件。

默认情况下,QSplitter会水平排列其子小部件(并排);您可以使用setOrientation (Qt::Vertical) 以垂直排列其子小部件。

默认情况下,所有小部件都可以根据用户的意愿变得任意大或小,介于小部件的minimumSizeHint()(或minimumSize())和maximumSize()之间。

QSplitter 默认通过动态调整其子组件的大小。如果您希望 QSplitter 仅在调整大小操作结束时代码调整子组件大小,请调用 setOpaqueResize (false)。

组件之间的初始尺寸分布是通过将初始尺寸乘以扩展因子来决定的。您还可以使用 setSizes() 来设置所有组件的大小。函数 sizes() 返回用户设置的大小。或者,您可以使用 saveState()restoreState() 分别从 QByteArray 保存和恢复组件的大小。

当您使用 hide() 隐藏一个子组件时,它的空间将分配给其他子组件。当您再次使用 show() 显示它时,空间将被恢复。

说明

QLayout 添加到 QSplitter 中是不支持的(无论是通过 setLayout() 还是将 QSplitter 设置为 QLayout 的父组件);请使用 addWidget() 代替(参见上面的示例)。

说明

当使用 from __feature__ import true_property 时,可以直接使用属性;否则,则通过访问函数使用。

property childrenCollapsibleᅟ: bool#

此属性表示子组件是否可以被用户调整大小到 0。

默认情况下,子项是可折叠的。可以使用setCollapsible函数来使能或禁用单个子项的折叠。setCollapsible .

另请参阅

setCollapsible()

访问函数
属性handleWidth: int#

此属性存储分割器句柄的宽度。

默认情况下,此属性的值取决于用户的平台和风格偏好。

如果将handleWidth设置为1或0,实际抓取区域将扩展以覆盖其相应小部件的几个像素。

访问函数
属性opaqueResize: bool#

如果小部件在动态(不透明地)交互式移动分割器时进行大小调整,则返回true。否则返回false

默认的调整大小行为依赖于样式(由SH_Splitter_OpaqueResize样式提示确定)。但是,您可以通过调用setOpaqueResize()来覆盖它

另请参阅

样式提示

访问函数
属性orientation: Qt.Orientation#

此属性存储分割器的方向。

默认情况下,方向是水平的(即,小部件并排排列)。可能的方向是Qt::Horizontal和Qt::Vertical。

另请参阅

orientation()

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

使用指定的orientationparent构建分割器。

另请参阅

setOrientation()

__init__([parent=None])
参数:

parentQWidget

通过将parent参数传递给QFrame构造函数来构建一个水平分割器。

另请参阅

setOrientation()

addWidget(widget)#
参数:

小部件QWidget

将指定的 widget 添加到分割器的布局中,在所有其他项之后。

如果 widget 已在分割器中,则将其移动到新的位置。

说明

分割器将拥有该小部件的所有权。

childrenCollapsible()#
返回类型:

bool

属性 childrenCollapsibleᅟ 的获取器。

closestLegalPosition(arg__1, arg__2)#
参数:
  • arg__1 – int

  • arg__2 – int

返回类型:

int

返回 pos 的最近合法位置 index 中的小部件。

对于从右到左的语言,如阿拉伯语和希伯来语,水平分割器的布局是反转的。然后从部件的右侧测量位置。

另请参阅

getRange()

count()#
返回类型:

int

返回分割器布局中包含的小部件数量。

另请参阅

widget() handle()

createHandle()#
返回类型:

QSplitterHandle

返回一个新分割器句柄作为此分割器的子小部件。此函数可以在子类中重实现以提供对自定义句柄的支持。

另请参阅

handle() indexOf()

getRange(index)#
参数:

index – int

返回类型:

PyObject

如果 minmax 不是 0,则返回在 index 的分割器的合法范围的 *min* 和 *max*。

handle(index)#
参数:

index – int

返回类型:

QSplitterHandle

返回给定索引处splitter布局中项目的左边(或上方)的处理程序,如果没有这样的项目,则返回None。索引为0的处理程序始终是隐藏的。

对于如阿拉伯语和希伯来语等从右到左的语言,水平splitter的布局将反转。处理程序位于index指定的小部件的右边。

handleWidth()#
返回类型:

int

另请参阅

setHandleWidth()

属性handleWidthᅟ的获取器。

indexOf(w)#
参数:

wQWidget

返回类型:

int

返回指定widget在splitter布局中的索引,如果找不到widget,则返回-1。这同样适用于处理程序。

处理程序的编号从0开始。handling程序的数量与子小部件的数量一样多,但位置为0的处理程序始终是隐藏的。

另请参阅

count() widget()

insertWidget(index, widget)#
参数:
  • index – int

  • 小部件QWidget

将指定的widget插入到splitter的布局中给定index处。

如果 widget 已在分割器中,则将其移动到新的位置。

如果index是一个无效索引,则该小部件将被插入到末尾。

说明

分割器将拥有该小部件的所有权。

isCollapsible(index)#
参数:

index – int

返回类型:

bool

如果位于 index 位置的部件可折叠,则返回 true,否则返回 false

moveSplitter(pos, index)#
参数:
  • pos – int

  • index – int

将位于 index 位置的分割器的左边缘或顶部边缘移至与位置 pos 尽可能接近的位置,其中 pos 是从部件的左边缘或顶部边缘的距离。

对于从右到左的语言,如阿拉伯语和希伯来语,水平分割器的布局会反转。此时,pos 是从部件的右边缘的距离。

opaqueResize()#
返回类型:

bool

另请参阅

setOpaqueResize()

属性 opaqueResizeᅟ 的获取器。

orientation()#
返回类型:

方向

另请参阅

setOrientation()

属性 orientationᅟ 的获取器。

refresh()#

更新分割器状态。通常不需要调用此函数。

replaceWidget(index, widget)#
参数:
  • index – int

  • 小部件QWidget

返回类型:

QWidget

将分割器布局中给定 index 的部件替换为 widget

如果 index 有效且 widget 不是分割器的子部件,则返回新替换的部件。否则,返回 null,不进行替换或添加。

新插入的部件的几何形状将与替换的部件相同。它的可见和折叠状态也将继承。

说明

分割器将负责 widget,并将替换部件的父对象设置为 null。

说明

因为 widget 被重新入 reparented 到分割器中,其 geometry 可能不会立即设置,而是在 widget 接收到适当的的事件后才进行设置。

另请参阅

insertWidget() indexOf()

restoreState(state)#
参数:

stateQByteArray

返回类型:

bool

警告

本节包含从C++自动翻译到Python的片段,可能包含错误。

将分割器的布局恢复到指明的 state。如果状态已恢复,则返回 true,否则返回 false

通常与 QSettings 结合使用来从过去的会话恢复大小。以下是一个示例:

恢复分割器状态

settings = QSettings()
splitter.restoreState(settings.value("splitterSizes").toByteArray())

无法恢复分割器布局可能是因为提供的字节数据无效或过时。

另请参阅

saveState()

saveState()#
返回类型:

QByteArray

警告

本节包含从C++自动翻译到Python的片段,可能包含错误。

保存分割器布局的状态。

通常与 QSettings 结合使用来记住下一次会话的大小。数据部分存储了一个版本号。以下是一个示例:

settings = QSettings()
settings.setValue("splitterSizes", splitter.saveState())

另请参阅

restoreState()

setChildrenCollapsible(arg__1)#
参数:

arg__1 – bool

另请参阅

childrenCollapsible()

设置属性 childrenCollapsibleᅟ 。.

setCollapsible(index, arg__2)#
参数:
  • index – int

  • arg__2 – bool

设置索引为 index 的子控件是否可以折叠到 collapse

默认情况下,子控件是可折叠的,这意味着用户可以将它们调整到 0 的大小,即使它们有非零的 minimumSize()minimumSizeHint() 。可以通过调用此函数在单个控件的基础上更改此行为,或者通过设置 childrenCollapsible 属性在分割器中的所有控件上全局更改。

setHandleWidth(arg__1)#
参数:

arg__1 – int

另请参阅

handleWidth()

属性 handleWidth 的设置器。

setOpaqueResize([opaque=true])#
参数:

opaque – bool

另请参阅

opaqueResize()

属性 opaqueResize 的设置器。

setOrientation(arg__1)#
参数:

arg__1Orientation

另请参阅

orientation()

属性 orientation 的设置器。

setRubberBand(position)#
参数:

position – int

在位置 pos 显示橡皮带宽带。如果 pos 为负数,则移除橡皮带宽带。

setSizes(list)#
参数:

list – .int 的列表

将子小部件的相应大小设置为在 list 中给出的值。

如果分割器是水平的,则设置的值以像素为单位设置每个小部件的宽度,从左到右。如果分割器是垂直的,则设置每个小部件的高度,从上到下。

list 中的额外值将被忽略。如果 list 包含的值太少了,则结果未定义,但程序仍将表现得很好。

分割器小部件的整体大小不会受到影响。相反,任何额外的/缺失的空间将根据大小的相对权重在各个小部件之间分配。

如果您指定的大小为 0,则小部件将不可见。保留小部件的大小策略。也就是说,一个小于相应小部件的最小大小提示的值将被提示的值替换。

另请参阅

sizes()

setStretchFactor#
参数:
  • index – int

  • stretch – int

警告

本节包含从C++自动翻译到Python的片段,可能包含错误。

将位置 index 的小部件的大小策略更新为具有 stretch 的扩展因子。

stretch 不是一个有效的拉伸因子;有效拉伸因子是通过将小部件的初始大小与 stretch 相乘来计算的。

此函数提供方便。它等同于

widget = splitter.widget(index)
policy = widget.sizePolicy()
policy.setHorizontalStretch(stretch)
policy.setVerticalStretch(stretch)
widget.setSizePolicy(policy)

另请参阅

setSizes() widget()

sizes()#
返回类型:

.整数列表

返回此拆分器中所有小部件的大小参数列表。

如果拆分器的方向是水平的,则列表包含从左到右的部件宽度(以像素为单位);如果方向是垂直的,则列表包含从上到下的部件高度(以像素为单位)。

将这些值传递给另一个拆分器的 setSizes() 函数将产生与此拆分器相同的布局。

请注意,不可见的部件的大小为 0。

另请参阅

setSizes()

splitterMoved(pos, index)#
参数:
  • pos – int

  • index – int

当特定 index 的拆分器柄被移动到位置 pos 时,将发出此信号。

对于从右到左的语言,如阿拉伯语和希伯来语,水平分割器的布局会反转。此时,pos 是从部件的右边缘的距离。

另请参阅

moveSplitter()

widget(index)#
参数:

index – int

返回类型:

QWidget

返回拆分器布局中给定 index 的部件,或者如果没有此类部件,则返回 None