pyqt5-QSplitter

发布时间 2023-04-30 10:46:10作者: 挖洞404

1、介绍

QSplitter类是用于分裂器水平布局或垂直布局,效果是该组件内在水平或垂直方向上的直接子组件,可以用鼠标拖动子组件之间的分界线,以变化各自的宽度或长度。

简单来说,就是在水平布局或垂直布局的固定分配上,允许各组件变化尺寸。

2、类和初始化

class QSplitter(QFrame):

快速查询

QSplitter(parent: typing.Optional[QWidget] = None)
QSplitter(orientation: Qt.Orientation, parent: typing.Optional[QWidget] = None)
addWidget(self, widget: QWidget)
childrenCollapsible(self) -> bool
closestLegalPosition(self, a0: int, a1: int) -> int
count(self) -> int
createHandle(self) -> QSplitterHandle
getRange(self, index: int) -> Tuple[int, int]
handle(self, index: int) -> QSplitterHandle
handleWidth(self) -> int
indexOf(self, w: QWidget) -> int
insertWidget(self, index: int, widget: QWidget)
isCollapsible(self, index: int) -> bool
minimumSizeHint(self) -> QSize
moveSplitter(self, pos: int, index: int)
opaqueResize(self) -> bool
orientation(self) -> Qt.Orientation
refresh(self)
replaceWidget(self, index: int, widget: QWidget) -> QWidget
restoreState(self, state: Union[QByteArray, bytes, bytearray]) -> bool
saveState(self) -> QByteArray
setChildrenCollapsible(self, a0: bool)
setCollapsible(self, index: int, a1: bool)
setHandleWidth(self, a0: int)
setOpaqueResize(self, opaque: bool = True)
setOrientation(self, a0: Qt.Orientation)
setRubberBand(self, position: int)
setSizes(self, list: Iterable[int])
setStretchFactor(self, index: int, stretch: int)
sizeHint(self) -> QSize
sizes(self) -> List[int]
widget(self, index: int) -> QWidget
Return len(self).
---------------
changeEvent(self, a0: QEvent)
childEvent(self, a0: QChildEvent)
event(self, a0: QEvent) -> bool
resizeEvent(self, a0: QResizeEvent)
---------------
splitterMoved(self, pos: int, index: int) [signal]

3、方法

(1)setSizes

setSizes(self, list: Iterable[int])
setSizes([1000,4000])
  • 设置组件内直接子组件的宽度或高度比例,具体由布局方向决定
  • 注意,一般需要将其内的数值设置得比较大,超过子组件的真实宽度或高度,原理的话是该方法是只有真实尺寸不足时按照比例显示,而如果设置过小会完全不起作用

(2)addWidget 

 addWidget(self, widget: QWidget)
  • 添加组件

(3)count

count(self) -> int
  • 获取子组件的个数

(4)indexOf

indexOf(self, w: QWidget) -> int
  • 获取某组件在QSplitter组件内的索引

(5)isCollapsible

isCollapsible(self, index: int) -> bool 
  • 获取某索引的子组件是否收起
  • 在QSplitter组件内,拖动某组件到最小尺寸就可能被收起,完全不显示。当其两侧子组件拖动恢复一定空间后又显示出来。

(6)refresh

 refresh(self)
  • 暂时不确定具体效果,是恢复初始未手动改变状态?

(7)setCollapsible

setCollapsible(self, index: int, a1: bool)
  • 设置某子组件收起

(8)sizes

sizes(self) -> List[int]
  • 获取的是真实的,还是设置的?

(9)widget

widget(self, index: int) -> QWidget
  • 获取指定索引的组件