QSplitter¶
Synopsis¶
Functions¶
def
addWidget
(widget)def
childrenCollapsible
()def
closestLegalPosition
(arg__1, arg__2)def
count
()def
getRange
(index)def
handle
(index)def
handleWidth
()def
indexOf
(w)def
insertWidget
(index, widget)def
isCollapsible
(index)def
moveSplitter
(pos, index)def
opaqueResize
()def
orientation
()def
refresh
()def
replaceWidget
(index, widget)def
restoreState
(state)def
saveState
()def
setChildrenCollapsible
(arg__1)def
setCollapsible
(index, arg__2)def
setHandleWidth
(arg__1)def
setOpaqueResize
([opaque=true])def
setOrientation
(arg__1)def
setRubberBand
(position)def
setSizes
(list)def
setStretchFactor
(index, stretch)def
sizes
()def
widget
(index)
Virtual functions¶
def
createHandle
()
Signals¶
def
splitterMoved
(pos, index)
Detailed Description¶
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 usinginsertWidget()
oraddWidget()
.The following example will show a
QListView
,QTreeView
, andQTextEdit
side by side, with two splitter handles: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
wheninsertWidget()
oraddWidget()
is called, it will move to the new position. This can be used to reorder widgets in the splitter later. You can useindexOf()
,widget()
, andcount()
to get access to the widgets inside the splitter.A default
QSplitter
lays out its children horizontally (side by side); you can usesetOrientation
(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()
(orminimumSize()
) andmaximumSize()
of the widgets.
QSplitter
resizes its children dynamically by default. If you would rather haveQSplitter
resize the children only at the end of a resize operation, callsetOpaqueResize
(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 functionsizes()
returns the sizes set by the user. Alternatively, you can save and restore the sizes of the widgets from aQByteArray
usingsaveState()
andrestoreState()
respectively.When you
hide()
a child, its space will be distributed among the other children. It will be reinstated when youshow()
it again.Note
Adding a
QLayout
to aQSplitter
is not supported (either throughsetLayout()
or making theQSplitter
a parent of theQLayout
); useaddWidget()
instead (see example above).See also
- class PySide2.QtWidgets.QSplitter([parent=None])¶
PySide2.QtWidgets.QSplitter(arg__1[, parent=None])
- param parent:
- param arg__1:
Constructs a horizontal splitter with the
parent
argument passed on to theQFrame
constructor.See also
Constructs a splitter with the given
orientation
andparent
.See also
- PySide2.QtWidgets.QSplitter.addWidget(widget)¶
- Parameters:
widget –
PySide2.QtWidgets.QWidget
Adds the given
widget
to the splitter’s layout after all the other items.If
widget
is already in the splitter, it will be moved to the new position.Note
The splitter takes ownership of the widget.
See also
- PySide2.QtWidgets.QSplitter.childrenCollapsible()¶
- Return type:
bool
This property holds whether child widgets can be resized down to size 0 by the user.
By default, children are collapsible. It is possible to enable and disable the collapsing of individual children using
setCollapsible()
.See also
- PySide2.QtWidgets.QSplitter.closestLegalPosition(arg__1, arg__2)¶
- Parameters:
arg__1 – int
arg__2 – int
- Return type:
int
Returns the closest legal position to
pos
of the widget atindex
.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.
See also
- PySide2.QtWidgets.QSplitter.count()¶
- Return type:
int
Returns the number of widgets contained in the splitter’s layout.
- PySide2.QtWidgets.QSplitter.createHandle()¶
- Return type:
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)¶
- Parameters:
index – int
Returns the valid range of the splitter at
index
in *``min`` and *``max`` ifmin
andmax
are not 0.
- PySide2.QtWidgets.QSplitter.handle(index)¶
- Parameters:
index – int
- Return type:
Returns the handle to the left of (or above) the item in the splitter’s layout at the given
index
, orNone
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()¶
- Return type:
int
This property holds the width of the splitter handles.
By default, this property contains a value that depends on the user’s platform and style preferences.
If you set to 1 or 0, the actual grab area will grow to overlap a few pixels of its respective widgets.
- PySide2.QtWidgets.QSplitter.indexOf(w)¶
- Parameters:
- Return type:
int
Returns the index in the splitter’s layout of the specified
widget
, or -1 ifwidget
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)¶
- Parameters:
index – int
widget –
PySide2.QtWidgets.QWidget
Inserts the
widget
specified into the splitter’s layout at the givenindex
.If
widget
is already in the splitter, it will be moved to the new position.If
index
is an invalid index, then the widget will be inserted at the end.Note
The splitter takes ownership of the widget.
See also
- PySide2.QtWidgets.QSplitter.isCollapsible(index)¶
- Parameters:
index – int
- Return type:
bool
Returns
true
if the widget atindex
is collapsible, otherwise returnsfalse
.
- PySide2.QtWidgets.QSplitter.moveSplitter(pos, index)¶
- Parameters:
pos – int
index – int
Moves the left or top edge of the splitter handle at
index
as close as possible to positionpos
, 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()¶
- Return type:
bool
Returns
true
if widgets are resized dynamically (opaquely) while interactively moving the splitter. Otherwise returnsfalse
.The default resize behavior is style dependent (determined by the SH_Splitter_OpaqueResize style hint). However, you can override it by calling
See also
StyleHint
- PySide2.QtWidgets.QSplitter.orientation()¶
- Return type:
This property holds the orientation of the splitter.
By default, the orientation is horizontal (i.e., the widgets are laid out side by side). The possible orientations are
Horizontal
andVertical
.See also
- PySide2.QtWidgets.QSplitter.refresh()¶
Updates the splitter’s state. You should not need to call this function.
- PySide2.QtWidgets.QSplitter.replaceWidget(index, widget)¶
- Parameters:
index – int
widget –
PySide2.QtWidgets.QWidget
- Return type:
Replaces the widget in the splitter’s layout at the given
index
bywidget
.Returns the widget that has just been replaced if
index
is valid andwidget
is not already a child of the splitter. Otherwise, it returns null and no replacement or addition is made.The geometry of the newly inserted widget will be the same as the widget it replaces. Its visible and collapsed states are also inherited.
Note
The splitter takes ownership of
widget
and sets the parent of the replaced widget to null.Note
Because
widget
getsreparented
into the splitter, itsgeometry
may not be set right away, but only afterwidget
will receive the appropriate events.See also
- PySide2.QtWidgets.QSplitter.restoreState(state)¶
- Parameters:
state –
PySide2.QtCore.QByteArray
- Return type:
bool
Restores the splitter’s layout to the
state
specified. Returnstrue
if the state is restored; otherwise returnsfalse
.Typically this is used in conjunction with
QSettings
to restore the size from a past session. Here is an example: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.
See also
- PySide2.QtWidgets.QSplitter.saveState()¶
- Return type:
Saves the state of the splitter’s layout.
Typically this is used in conjunction with
QSettings
to remember the size for a future session. A version number is stored as part of the data. Here is an example:settings = QSettings() settings.setValue("splitterSizes", splitter.saveState())
See also
- PySide2.QtWidgets.QSplitter.setChildrenCollapsible(arg__1)¶
- Parameters:
arg__1 – bool
This property holds whether child widgets can be resized down to size 0 by the user.
By default, children are collapsible. It is possible to enable and disable the collapsing of individual children using
setCollapsible()
.See also
- PySide2.QtWidgets.QSplitter.setCollapsible(index, arg__2)¶
- Parameters:
index – int
arg__2 – bool
Sets whether the child widget at
index
is collapsible tocollapse
.By default, children are collapsible, meaning that the user can resize them down to size 0, even if they have a non-zero
minimumSize()
orminimumSizeHint()
. 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 thechildrenCollapsible
property.See also
- PySide2.QtWidgets.QSplitter.setHandleWidth(arg__1)¶
- Parameters:
arg__1 – int
This property holds the width of the splitter handles.
By default, this property contains a value that depends on the user’s platform and style preferences.
If you set to 1 or 0, the actual grab area will grow to overlap a few pixels of its respective widgets.
- PySide2.QtWidgets.QSplitter.setOpaqueResize([opaque=true])¶
- Parameters:
opaque – bool
Returns
true
if widgets are resized dynamically (opaquely) while interactively moving the splitter. Otherwise returnsfalse
.The default resize behavior is style dependent (determined by the SH_Splitter_OpaqueResize style hint). However, you can override it by calling
See also
StyleHint
- PySide2.QtWidgets.QSplitter.setOrientation(arg__1)¶
- Parameters:
arg__1 –
Orientation
This property holds the orientation of the splitter.
By default, the orientation is horizontal (i.e., the widgets are laid out side by side). The possible orientations are
Horizontal
andVertical
.See also
- PySide2.QtWidgets.QSplitter.setRubberBand(position)¶
- Parameters:
position – int
Displays a rubber band at position
pos
. Ifpos
is negative, the rubber band is removed.
- PySide2.QtWidgets.QSplitter.setSizes(list)¶
- Parameters:
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. Iflist
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.
See also
- PySide2.QtWidgets.QSplitter.setStretchFactor(index, stretch)¶
- Parameters:
index – int
stretch – int
Updates the size policy of the widget at position
index
to have a stretch factor ofstretch
.stretch
is not the effective stretch factor; the effective stretch factor is calculated by taking the initial size of the widget and multiplying it withstretch
.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)
See also
- PySide2.QtWidgets.QSplitter.sizes()¶
- Return type:
Returns a list of the size parameters of all the widgets in this splitter.
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.Note that invisible widgets have a size of 0.
See also
- PySide2.QtWidgets.QSplitter.splitterMoved(pos, index)¶
- Parameters:
pos – int
index – int
- PySide2.QtWidgets.QSplitter.widget(index)¶
- Parameters:
index – int
- Return type:
Returns the widget at the given
index
in the splitter’s layout, orNone
if there is no such widget.See also
© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.