PySide6.QtWidgets.QSplitter

class QSplitter

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

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)

如果一个小部件已经在QSplitter中,当调用insertWidget()addWidget()时,它将移动到新位置。这可以用于稍后重新排序分割器中的小部件。您可以使用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()

Access functions:
property handleWidthᅟ: int

此属性保存分隔符手柄的宽度。

默认情况下,此属性包含的值取决于用户的平台和样式偏好。

如果将handleWidth设置为1或0,实际的抓取区域将扩大到与其各自的小部件重叠几个像素。

Access functions:
property opaqueResizeᅟ: bool

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

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

另请参阅

StyleHint

Access functions:
property orientationᅟ: Qt.Orientation

此属性保存分隔条的方向。

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

另请参阅

orientation()

Access functions:
__init__([parent=None])
Parameters:

父级QWidget

使用传递给QFrame构造函数的parent参数构造一个水平分割器。

另请参阅

setOrientation()

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

使用给定的orientationparent构造一个分割器。

另请参阅

setOrientation()

addWidget(widget)
Parameters:

widgetQWidget

将给定的widget添加到拆分器的布局中,位于所有其他项目之后。

如果 widget 已经在分割器中,它将被移动到新位置。

注意

分割器接管了小部件的所有权。

childrenCollapsible()
Return type:

布尔

属性 childrenCollapsibleᅟ 的获取器。

closestLegalPosition(pos, index)
Parameters:
  • pos – 整数

  • index – 整数

Return type:

整数

返回小部件在index处最接近的合法位置pos

对于从右到左的语言,如阿拉伯语和希伯来语,水平分割器的布局是反向的。位置是从小部件的右边缘开始测量的。

另请参阅

getRange()

count()
Return type:

整数

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

另请参阅

widget() handle()

createHandle()
Return type:

QSplitterHandle

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

另请参阅

handle() indexOf()

getRange(index)
Parameters:

索引 – int

Return type:

PyObject

返回分割器在index处的有效范围,如果minmax不为0,则在*``min``和*``max``中返回。

handle(index)
Parameters:

索引 – int

Return type:

QSplitterHandle

返回拆分器布局中给定index处项目左侧(或上方)的句柄,如果没有这样的项目,则返回None。索引0处的句柄始终是隐藏的。

对于从右到左的语言,如阿拉伯语和希伯来语,水平分割器的布局是相反的。手柄将位于小部件的右侧,位于index

handleWidth()
Return type:

整数

另请参阅

setHandleWidth()

属性 handleWidthᅟ 的获取器。

indexOf(w)
Parameters:

wQWidget

Return type:

整数

返回指定widget在分割器布局中的索引,如果未找到widget则返回-1。这也适用于句柄。

句柄从0开始编号。句柄的数量与子小部件的数量相同,但位置0的句柄始终是隐藏的。

另请参阅

count() widget()

insertWidget(index, widget)
Parameters:
  • index – 整数

  • widgetQWidget

将指定的widget插入到分割器的布局中的给定index处。

如果 widget 已经在分割器中,它将被移动到新位置。

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

注意

分割器接管了小部件的所有权。

isCollapsible(index)
Parameters:

索引 – int

Return type:

布尔

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

moveSplitter(pos, index)
Parameters:
  • pos – 整数

  • index – 整数

将拆分器手柄的左侧或顶部边缘移动到尽可能接近位置 pos 的位置,该位置是从小部件的左侧或顶部边缘的距离。

对于从右到左的语言,如阿拉伯语和希伯来语,水平分割器的布局是相反的。pos 则是从小部件的右边缘开始的距离。

opaqueResize()
Return type:

布尔

另请参阅

setOpaqueResize()

属性 opaqueResizeᅟ 的获取器。

orientation()
Return type:

方向

另请参阅

setOrientation()

属性 orientationᅟ 的获取器。

refresh()

更新分隔器的状态。您不需要调用此函数。

replaceWidget(index, widget)
Parameters:
  • index – 整数

  • widgetQWidget

Return type:

QWidget

在分割器的布局中,用widget替换给定index处的小部件。

如果index有效且widget尚未成为分割器的子部件,则返回刚刚被替换的小部件。否则,返回null,并且不进行替换或添加。

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

注意

分割器接管了widget的所有权,并将被替换的小部件的父级设置为null。

注意

因为 widgetreparented 到分割器中,它的 geometry 可能不会立即设置,只有在 widget 接收到适当的事件后才会设置。

另请参阅

insertWidget() indexOf()

restoreState(state)
Parameters:

状态QByteArray

Return type:

布尔

警告

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

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

通常这与QSettings一起使用,以从过去的会话中恢复大小。以下是一个示例:

恢复分割器的状态:

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

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

另请参阅

saveState()

saveState()
Return type:

QByteArray

警告

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

保存分割器布局的状态。

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

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

另请参阅

restoreState()

setChildrenCollapsible(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

childrenCollapsible()

属性 childrenCollapsibleᅟ 的设置器。

setCollapsible(index, collapse)
Parameters:
  • index – 整数

  • collapse – bool

设置位于index的子部件是否可折叠为collapse

默认情况下,子部件是可折叠的,这意味着即使用户有非零的minimumSize()minimumSizeHint(),用户也可以将它们调整到大小为0。可以通过调用此函数来逐个更改每个小部件的行为,或者通过设置childrenCollapsible属性来全局更改所有小部件的行为。

setHandleWidth(arg__1)
Parameters:

arg__1 – 整数

另请参阅

handleWidth()

属性 handleWidthᅟ 的设置器。

setOpaqueResize([opaque=true])
Parameters:

opaque – 布尔值

另请参阅

opaqueResize()

属性 opaqueResizeᅟ 的设置器。

setOrientation(arg__1)
Parameters:

arg__1Orientation

另请参阅

orientation()

属性 orientationᅟ 的设置器。

setRubberBand(position)
Parameters:

position – int

在位置 pos 显示一个橡皮筋。如果 pos 为负数,则移除橡皮筋。

setSizes(list)
Parameters:

list – .整数列表

将子部件的大小设置为list中给定的值。

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

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

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

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

另请参阅

sizes()

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

  • 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()
Return type:

整数列表

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

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

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

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

另请参阅

setSizes()

splitterMoved(pos, index)
Parameters:
  • pos – 整数

  • index – 整数

当特定index处的分割器手柄移动到位置pos时,会发出此信号。

对于从右到左的语言,如阿拉伯语和希伯来语,水平分割器的布局是相反的。pos 则是从小部件的右边缘开始的距离。

另请参阅

moveSplitter()

widget(index)
Parameters:

索引 – int

Return type:

QWidget

返回拆分器布局中给定index处的小部件,如果没有这样的小部件,则返回None