内容表

上一话题

QSplashScreen

下一话题

QSplitterHandle

QSplitter

QSplitter class implements a splitter widget. 更多

Inheritance diagram of PySide2.QtWidgets.QSplitter

概要

函数

虚函数

信号

详细描述

A splitter lets the user control the size of child widgets by dragging the boundary between them. Any number of widgets may be controlled by a single splitter. The typical use of a QSplitter is to create several widgets and add them using insertWidget() or addWidget() .

以下范例将展示 QListView , QTreeView ,和 QTextEdit 并排,采用 2 个分割器手柄:

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

If a widget is already inside a QSplitter when insertWidget() or addWidget() is called, it will move to the new position. This can be used to reorder widgets in the splitter later. You can use indexOf() , widget() ,和 count() to get access to the widgets inside the splitter.

A default QSplitter lays out its children horizontally (side by side); you can use setOrientation ( Vertical ) to lay its children out vertically.

By default, all widgets can be as large or as small as the user wishes, between the minimumSizeHint() (或 minimumSize() ) and maximumSize() of the widgets.

QSplitter resizes its children dynamically by default. If you would rather have QSplitter resize the children only at the end of a resize operation, call setOpaqueResize (false).

The initial distribution of size between the widgets is determined by multiplying the initial size with the stretch factor. You can also use setSizes() to set the sizes of all the widgets. The function sizes() returns the sizes set by the user. Alternatively, you can save and restore the sizes of the widgets from a QByteArray 使用 saveState() and restoreState() 分别。

When you hide() a child, its space will be distributed among the other children. It will be reinstated when you show() it again.

注意

添加 QLayout QSplitter is not supported (either through setLayout() or making the QSplitter a parent of the QLayout );使用 addWidget() instead (see example above).

class QSplitter ( [ parent=None ] )

QSplitter(arg__1[, parent=None])

param parent

QWidget

param arg__1

取向

构造水平分割器采用 parent argument passed on to the QFrame 构造函数。

另请参阅

setOrientation()

构造分割器采用给定 orientation and parent .

另请参阅

setOrientation()

PySide2.QtWidgets.QSplitter. addWidget ( widget )
参数

widget QWidget

添加给定 widget to the splitter’s layout after all the other items.

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

注意

分割器拥有 Widget 的所有权。

PySide2.QtWidgets.QSplitter. childrenCollapsible ( )
返回类型

bool

PySide2.QtWidgets.QSplitter. closestLegalPosition ( arg__1 , arg__2 )
参数
  • arg__1 int

  • arg__2 int

返回类型

int

Returns the closest legal position to pos of the widget at index .

For right-to-left languages such as Arabic and Hebrew, the layout of horizontal splitters is reversed. Positions are then measured from the right edge of the widget.

另请参阅

getRange()

PySide2.QtWidgets.QSplitter. count ( )
返回类型

int

Returns the number of widgets contained in the splitter’s layout.

PySide2.QtWidgets.QSplitter. createHandle ( )
返回类型

QSplitterHandle

Returns a new splitter handle as a child widget of this splitter. This function can be reimplemented in subclasses to provide support for custom handles.

PySide2.QtWidgets.QSplitter. getRange ( index )
参数

index int

Returns the valid range of the splitter at index in *``min`` and *``max`` if min and max are not 0.

PySide2.QtWidgets.QSplitter. handle ( index )
参数

index int

返回类型

QSplitterHandle

Returns the handle to the left of (or above) the item in the splitter’s layout at the given index ,或 None if there is no such item. The handle at index 0 is always hidden.

For right-to-left languages such as Arabic and Hebrew, the layout of horizontal splitters is reversed. The handle will be to the right of the widget at index .

PySide2.QtWidgets.QSplitter. handleWidth ( )
返回类型

int

另请参阅

setHandleWidth()

PySide2.QtWidgets.QSplitter. indexOf ( w )
参数

w QWidget

返回类型

int

Returns the index in the splitter’s layout of the specified widget , or -1 if widget is not found. This also works for handles.

Handles are numbered from 0. There are as many handles as there are child widgets, but the handle at position 0 is always hidden.

PySide2.QtWidgets.QSplitter. insertWidget ( index , widget )
参数

插入 widget specified into the splitter’s layout at the given index .

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

index is an invalid index, then the widget will be inserted at the end.

注意

分割器拥有 Widget 的所有权。

PySide2.QtWidgets.QSplitter. isCollapsible ( index )
参数

index int

返回类型

bool

返回 true 若 Widget 在 index 是可折叠的,否则返回 false .

PySide2.QtWidgets.QSplitter. moveSplitter ( pos , index )
参数
  • pos int

  • index int

Moves the left or top edge of the splitter handle at index as close as possible to position pos , which is the distance from the left or top edge of the widget.

For right-to-left languages such as Arabic and Hebrew, the layout of horizontal splitters is reversed. pos is then the distance from the right edge of the widget.

PySide2.QtWidgets.QSplitter. opaqueResize ( )
返回类型

bool

另请参阅

setOpaqueResize()

PySide2.QtWidgets.QSplitter. orientation ( )
返回类型

取向

另请参阅

setOrientation()

PySide2.QtWidgets.QSplitter. refresh ( )

Updates the splitter’s state. You should not need to call this function.

PySide2.QtWidgets.QSplitter. replaceWidget ( index , widget )
参数
返回类型

QWidget

Replaces the widget in the splitter’s layout at the given index by widget .

返回刚才被替换的 Widget 若 index 有效和 widget 尚不是分割器子级。否则,它返回 null 且不置换或添加。

新近插入 Widget 的几何体如同它替换的小部件。它可见和折叠状态也会被继承。

注意

分割器拥有所有权对于 widget 并将替换小部件的父级设为 null。

注意

因为 widget gets reparented 到分割器,其 geometry 可能不会被立即设置,直到 widget 接收适当事件。

PySide2.QtWidgets.QSplitter. restoreState ( state )
参数

state QByteArray

返回类型

bool

Restores the splitter’s layout to the state 指定。返回 true 若状态被还原;否则返回 false .

通常,这用于结合 QSettings 从过去的会话还原尺寸。这里是范例:

Restore the splitter’s state:

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

A failure to restore the splitter’s layout may result from either invalid or out-of-date data in the supplied byte array.

另请参阅

saveState()

PySide2.QtWidgets.QSplitter. saveState ( )
返回类型

QByteArray

Saves the state of the splitter’s layout.

通常,这用于结合 QSettings 以记住用于未来会议的尺寸。版本号作为数据的一部分被存储。这里是范例:

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

另请参阅

restoreState()

PySide2.QtWidgets.QSplitter. setChildrenCollapsible ( arg__1 )
参数

arg__1 bool

PySide2.QtWidgets.QSplitter. setCollapsible ( index , arg__2 )
参数
  • index int

  • arg__2 bool

Sets whether the child widget at index is collapsible to collapse .

By default, children are collapsible, meaning that the user can resize them down to size 0, even if they have a non-zero minimumSize() or minimumSizeHint() . This behavior can be changed on a per-widget basis by calling this function, or globally for all the widgets in the splitter by setting the childrenCollapsible 特性。

PySide2.QtWidgets.QSplitter. setHandleWidth ( arg__1 )
参数

arg__1 int

另请参阅

handleWidth()

PySide2.QtWidgets.QSplitter. setOpaqueResize ( [ opaque=true ] )
参数

opaque bool

另请参阅

opaqueResize()

PySide2.QtWidgets.QSplitter. setOrientation ( arg__1 )
参数

arg__1 取向

另请参阅

orientation()

PySide2.QtWidgets.QSplitter. setRubberBand ( position )
参数

position int

Displays a rubber band at position pos 。若 pos is negative, the rubber band is removed.

PySide2.QtWidgets.QSplitter. setSizes ( list )
参数

list

Sets the child widgets’ respective sizes to the values given in the list .

If the splitter is horizontal, the values set the width of each widget in pixels, from left to right. If the splitter is vertical, the height of each widget is set, from top to bottom.

Extra values in the list are ignored. If list contains too few values, the result is undefined, but the program will still be well-behaved.

The overall size of the splitter widget is not affected. Instead, any additional/missing space is distributed amongst the widgets according to the relative weight of the sizes.

If you specify a size of 0, the widget will be invisible. The size policies of the widgets are preserved. That is, a value smaller than the minimal size hint of the respective widget will be replaced by the value of the hint.

另请参阅

sizes()

PySide2.QtWidgets.QSplitter. setStretchFactor ( index , stretch )
参数
  • index int

  • stretch int

Updates the size policy of the widget at position index to have a stretch factor of stretch .

stretch is not the effective stretch factor; the effective stretch factor is calculated by taking the initial size of the widget and multiplying it with stretch .

This function is provided for convenience. It is equivalent to

widget = splitter.widget(index)
policy = widget.sizePolicy()
policy.setHorizontalStretch(stretch)
policy.setVerticalStretch(stretch)
widget.setSizePolicy(policy)
											
PySide2.QtWidgets.QSplitter. sizes ( )
返回类型

返回此分割器所有 Widget 尺寸的参数列表。

If the splitter’s orientation is horizontal, the list contains the widgets width in pixels, from left to right; if the orientation is vertical, the list contains the widgets’ heights in pixels, from top to bottom.

Giving the values to another splitter’s setSizes() function will produce a splitter with the same layout as this one.

注意:不可见 Widget 拥有 0 尺寸。

另请参阅

setSizes()

PySide2.QtWidgets.QSplitter. splitterMoved ( pos , index )
参数
  • pos int

  • index int

PySide2.QtWidgets.QSplitter. widget ( index )
参数

index int

返回类型

QWidget

返回 Widget 在给定 index in the splitter’s layout, or None 若没有这样的 Widget。