PySide6.QtWidgets.QSplitterHandle¶
- class QSplitterHandle¶
QSplitterHandle类为分割器提供了手柄功能。更多…概要¶
方法¶
def
__init__()def
moveSplitter()def
opaqueResize()def
orientation()def
setOrientation()def
splitter()
注意
本文档可能包含从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()。另请参阅
创建一个带有给定
orientation和parent的QSplitter句柄。- closestLegalPosition(p)¶
- Parameters:
p – 整数
- Return type:
整数
返回与分隔条手柄的
pos最接近的合法位置。这些位置是从分隔条的左边缘或上边缘测量的,即使对于从右到左的语言也是如此。- moveSplitter(p)¶
- Parameters:
p – 整数
告诉分割器将此手柄移动到位置
pos,这是从小部件的左边缘或上边缘的距离。请注意,对于从右到左的语言,
pos也是从左(或上)开始测量的。在调用moveSplitter()之前,此函数会将pos映射到适当的位置。- opaqueResize()¶
- Return type:
布尔
如果小部件在交互式移动分隔条时动态调整大小(不透明),则返回
true。否则返回false。此值由QSplitter控制。另请参阅
返回句柄的方向。这通常是从
QSplitter传播的。设置分割器手柄的方向为
orientation。这通常是从QSplitter传播的。返回与此分割器句柄关联的分割器。
另请参阅