- class QSplitter#
-
概览#
属性#
childrenCollapsible
- 子部件是否可以被用户调整大小到大小为0handleWidth
- 分隔线手柄的宽度orientation
- 分隔线的方向
方法#
def
__init__()
def
addWidget()
def
count()
def
getRange()
定义
handle()}
定义
indexOf()
定义
refresh()
定义
saveState()
定义
setSizes()
定义
sizes()
定义
widget()
虚方法#
信号#
def
splitterMoved()
说明
本文档可能包含某些从C++自动翻译到Python的代码片段。我们始终欢迎贡献对片段的翻译。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告诉我们。
详细描述#
警告
本节包含从C++自动翻译到Python的片段,可能包含错误。
分割器允许用户通过拖动它们之间的边界来控制子小部件的大小。一个分割器可以控制任意数量的小部件。典型的
QSplitter
使用是在创建一些小部件后,使用insertWidget()
或addWidget()
将它们添加。以下示例将展示一个
QListView
、QTreeView
和QTextEdit
并排显示,其中包含两个分割器手柄。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
.另请参阅
- 属性handleWidth: int#
此属性存储分割器句柄的宽度。
默认情况下,此属性的值取决于用户的平台和风格偏好。
如果将handleWidth设置为1或0,实际抓取区域将扩展以覆盖其相应小部件的几个像素。
- 属性opaqueResize: bool#
如果小部件在动态(不透明地)交互式移动分割器时进行大小调整,则返回
true
。否则返回false
。默认的调整大小行为依赖于样式(由SH_Splitter_OpaqueResize样式提示确定)。但是,您可以通过调用setOpaqueResize()来覆盖它
另请参阅
- 属性orientation: Qt.Orientation#
此属性存储分割器的方向。
默认情况下,方向是水平的(即,小部件并排排列)。可能的方向是Qt::Horizontal和Qt::Vertical。
另请参阅
- __init__(arg__1[, parent=None])#
- 参数:
arg__1 –
Orientation
parent –
QWidget
使用指定的
orientation
和parent
构建分割器。另请参阅
- __init__([parent=None])
- 参数:
parent –
QWidget
通过将
parent
参数传递给QFrame
构造函数来构建一个水平分割器。另请参阅
将指定的
widget
添加到分割器的布局中,在所有其他项之后。如果
widget
已在分割器中,则将其移动到新的位置。- childrenCollapsible()#
- 返回类型:
bool
属性
childrenCollapsibleᅟ
的获取器。- closestLegalPosition(arg__1, arg__2)#
- 参数:
arg__1 – int
arg__2 – int
- 返回类型:
int
返回
pos
的最近合法位置index
中的小部件。对于从右到左的语言,如阿拉伯语和希伯来语,水平分割器的布局是反转的。然后从部件的右侧测量位置。
另请参阅
- count()#
- 返回类型:
int
返回分割器布局中包含的小部件数量。
- createHandle()#
- 返回类型:
返回一个新分割器句柄作为此分割器的子小部件。此函数可以在子类中重实现以提供对自定义句柄的支持。
- getRange(index)#
- 参数:
index – int
- 返回类型:
PyObject
如果
min
和max
不是 0,则返回在index
的分割器的合法范围的 *min
* 和 *max
*。- handle(index)#
- 参数:
index – int
- 返回类型:
返回给定索引处splitter布局中项目的左边(或上方)的处理程序,如果没有这样的项目,则返回
None
。索引为0的处理程序始终是隐藏的。对于如阿拉伯语和希伯来语等从右到左的语言,水平splitter的布局将反转。处理程序位于
index
指定的小部件的右边。- handleWidth()#
- 返回类型:
int
另请参阅
属性
handleWidthᅟ
的获取器。返回指定
widget
在splitter布局中的索引,如果找不到widget
,则返回-1。这同样适用于处理程序。处理程序的编号从0开始。handling程序的数量与子小部件的数量一样多,但位置为0的处理程序始终是隐藏的。
将指定的
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
另请参阅
属性
opaqueResizeᅟ
的获取器。- orientation()#
- 返回类型:
另请参阅
属性
orientationᅟ
的获取器。- refresh()#
更新分割器状态。通常不需要调用此函数。
将分割器布局中给定
index
的部件替换为widget
。如果
index
有效且widget
不是分割器的子部件,则返回新替换的部件。否则,返回 null,不进行替换或添加。新插入的部件的几何形状将与替换的部件相同。它的可见和折叠状态也将继承。
说明
分割器将负责
widget
,并将替换部件的父对象设置为 null。- restoreState(state)#
- 参数:
state –
QByteArray
- 返回类型:
bool
警告
本节包含从C++自动翻译到Python的片段,可能包含错误。
将分割器的布局恢复到指明的
state
。如果状态已恢复,则返回true
,否则返回false
。通常与 QSettings 结合使用来从过去的会话恢复大小。以下是一个示例:
恢复分割器状态
settings = QSettings() splitter.restoreState(settings.value("splitterSizes").toByteArray())
无法恢复分割器布局可能是因为提供的字节数据无效或过时。
另请参阅
- saveState()#
- 返回类型:
警告
本节包含从C++自动翻译到Python的片段,可能包含错误。
保存分割器布局的状态。
通常与 QSettings 结合使用来记住下一次会话的大小。数据部分存储了一个版本号。以下是一个示例:
settings = QSettings() settings.setValue("splitterSizes", splitter.saveState())
另请参阅
- setChildrenCollapsible(arg__1)#
- 参数:
arg__1 – bool
设置属性
childrenCollapsibleᅟ
。.- setCollapsible(index, arg__2)#
- 参数:
index – int
arg__2 – bool
设置索引为
index
的子控件是否可以折叠到collapse
。默认情况下,子控件是可折叠的,这意味着用户可以将它们调整到 0 的大小,即使它们有非零的
minimumSize()
或minimumSizeHint()
。可以通过调用此函数在单个控件的基础上更改此行为,或者通过设置childrenCollapsible
属性在分割器中的所有控件上全局更改。- setHandleWidth(arg__1)#
- 参数:
arg__1 – int
另请参阅
属性
handleWidth
的设置器。- setOpaqueResize([opaque=true])#
- 参数:
opaque – bool
另请参阅
属性
opaqueResize
的设置器。- setOrientation(arg__1)#
- 参数:
arg__1 –
Orientation
另请参阅
属性
orientation
的设置器。- setRubberBand(position)#
- 参数:
position – int
在位置
pos
显示橡皮带宽带。如果pos
为负数,则移除橡皮带宽带。- setSizes(list)#
- 参数:
list – .int 的列表
将子小部件的相应大小设置为在
list
中给出的值。如果分割器是水平的,则设置的值以像素为单位设置每个小部件的宽度,从左到右。如果分割器是垂直的,则设置每个小部件的高度,从上到下。
list
中的额外值将被忽略。如果list
包含的值太少了,则结果未定义,但程序仍将表现得很好。分割器小部件的整体大小不会受到影响。相反,任何额外的/缺失的空间将根据大小的相对权重在各个小部件之间分配。
如果您指定的大小为 0,则小部件将不可见。保留小部件的大小策略。也就是说,一个小于相应小部件的最小大小提示的值将被提示的值替换。
另请参阅
- 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)
另请参阅
- sizes()#
- 返回类型:
.整数列表
返回此拆分器中所有小部件的大小参数列表。
如果拆分器的方向是水平的,则列表包含从左到右的部件宽度(以像素为单位);如果方向是垂直的,则列表包含从上到下的部件高度(以像素为单位)。
将这些值传递给另一个拆分器的
setSizes()
函数将产生与此拆分器相同的布局。请注意,不可见的部件的大小为 0。
另请参阅
- splitterMoved(pos, index)#
- 参数:
pos – int
index – int
当特定
index
的拆分器柄被移动到位置pos
时,将发出此信号。对于从右到左的语言,如阿拉伯语和希伯来语,水平分割器的布局会反转。此时,
pos
是从部件的右边缘的距离。另请参阅
返回拆分器布局中给定
index
的部件,或者如果没有此类部件,则返回None
。