QSplitterHandle is typically what people think about when they think about a splitter. It is the handle that is used to resize the widgets.
The typical way one would create splitter handles is to subclass
QSplitter and then reimplement
createHandle() to instantiate the custom splitter handle. For example, a minimum
QSplitter subclass might look like this:
class Splitter(QSplitter): # public Splitter(Qt.Orientation orientation, QWidget parent = None) # protected createHandle = QSplitterHandle()
createHandle() implementation simply constructs a custom splitter handle, called
Splitter in this example:
Splitter::createHandle = QSplitterHandle() return SplitterHandle(orientation(), self)
Information about a given handle can be obtained using functions like
opaqueResize() , and is retrieved from its parent splitter. Details like these can be used to give custom handles different appearances depending on the splitter’s orientation.
The complexity of a custom handle subclass depends on the tasks that it needs to perform. A simple subclass might only provide a
def paintEvent(self, event): painter = QPainter(self) if orientation() == Qt.Horizontal: gradient.setStart(rect().left(), rect().height()/2) gradient.setFinalStop(rect().right(), rect().height()/2) else: gradient.setStart(rect().width()/2, rect().top()) gradient.setFinalStop(rect().width()/2, rect().bottom()) painter.fillRect(event.rect(), QBrush(gradient))
In this example, a predefined gradient is set up differently depending on the orientation of the handle.
QSplitterHandle provides a reasonable size hint for the handle, so the subclass does not need to provide a reimplementation of
sizeHint() unless the handle has special size requirements.
- class PySide6.QtWidgets.QSplitterHandle(o, parent)#
QSplitter handle with the given
p – int
- Return type
Returns the closest legal position to
pos of the splitter handle. The positions are measured from the left or top edge of the splitter, even for right-to-left languages.
p – int
Tells the splitter to move this handle to position
pos, which is the distance from the left or top edge of the widget.
pos is also measured from the left (or top) for right-to-left languages. This function will map
pos to the appropriate position before calling
- Return type
true if widgets are resized dynamically (opaquely) while interactively moving the splitter. Otherwise returns
false. This value is controlled by the
Returns the handle’s orientation. This is usually propagated from the
Sets the orientation of the splitter handle to
orientation. This is usually propagated from the
Returns the splitter associated with this splitter handle.