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
- 获取指定索引的组件