class QSplitterHandle#

QSplitterHandle 类提供了分割器的处理功能。 更多信息

Inheritance diagram of 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)#
参数:

创建一个具有给定 orientationparentQSplitter 控制器。

closestLegalPosition(p)#
参数:

p – int

返回类型:

int

返回分隔条手柄到pos的最近合法位置。位置是从分隔条左边缘或上边缘计算的,即使在从右到左的语言中也是如此。

moveSplitter(p)#
参数:

p – int

告诉分隔条将这个手柄移动到位置pos,这是从部件左边缘或上边缘的距离。

注意,在从右到左的语言中,pos也是从左(或上)计算的。这个函数在调用moveSplitter()之前,会将pos映射到适当的位移。

opaqueResize()#
返回类型:

bool

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

也请参阅

opaqueResize()

orientation()#
返回类型:

Orientation

返回手柄的朝向。这通常从QSplitter中传播

setOrientation(o)#
参数:

oOrientation

将分隔条手柄的朝向设置为orientation。这通常从QSplitter中传播。

splitter()#
返回类型:

QSplitter

返回与该分割处理器关联的分割器。

也请参阅

handle()