PySide6.QtWidgets.QSplitterHandle

class QSplitterHandle

QSplitterHandle 类为分割器提供了手柄功能。更多

PySide6.QtWidgets.QSplitterHandle 的继承图

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

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

QSplitterHandle 通常是人们想到分割器时所想到的。它是用于调整小部件大小的手柄。

一个典型的开发者使用QSplitter时,通常不需要担心QSplitterHandle。它是为那些希望分割器手柄提供额外功能(如弹出菜单)的开发者提供的。

创建分割器手柄的典型方法是子类化QSplitter,然后重新实现createHandle()以实例化自定义分割器手柄。例如,一个最小的QSplitter子类可能如下所示:

class Splitter(QSplitter):

# public
    Splitter(Qt.Orientation orientation, QWidget parent = None)
# protected
    QSplitterHandle createHandle() override

createHandle() 的实现简单地构造了一个自定义的分割器手柄,在这个例子中称为 Splitter

QSplitterHandle Splitter.createHandle()

    return SplitterHandle(orientation(), self)

关于给定手柄的信息可以使用诸如orientation()opaqueResize()等函数获取,并从其父分割器中检索。这些细节可用于根据分割器的方向为自定义手柄提供不同的外观。

自定义句柄子类的复杂性取决于它需要执行的任务。一个简单的子类可能只提供一个paintEvent()实现:

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))

在这个例子中,根据手柄的方向不同,预定义的渐变设置也不同。QSplitterHandle为手柄提供了一个合理的大小提示,因此除非手柄有特殊的大小要求,否则子类不需要重新实现sizeHint()

另请参阅

QSplitter

__init__(o, parent)
Parameters:

创建一个带有给定orientationparentQSplitter句柄。

closestLegalPosition(p)
Parameters:

p – 整数

Return type:

整数

返回与分隔条手柄的pos最接近的合法位置。这些位置是从分隔条的左边缘或上边缘测量的,即使对于从右到左的语言也是如此。

moveSplitter(p)
Parameters:

p – 整数

告诉分割器将此手柄移动到位置 pos,这是从小部件的左边缘或上边缘的距离。

请注意,对于从右到左的语言,pos 也是从左(或上)开始测量的。在调用 moveSplitter() 之前,此函数会将 pos 映射到适当的位置。

opaqueResize()
Return type:

布尔

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

另请参阅

opaqueResize()

orientation()
Return type:

方向

返回句柄的方向。这通常是从QSplitter传播的。

setOrientation(o)
Parameters:

o方向

设置分割器手柄的方向为orientation。这通常是从QSplitter传播的。

splitter()
Return type:

QSplitter

返回与此分割器句柄关联的分割器。

另请参阅

handle()