9.PyQt5【布局组件】区域分隔器-QSplitter
一、前言
本节我们介绍布局组件中的区域分隔器QSplitter。
二、学习目标
1.QSplitter区域分隔器的应用
三、知识点
1.【QSplitter区域分隔器的应用】
QSplitter是一个带切分条(splitter handle)的布局管理器,可以通过setHandleWidth()函数来设置切分条的宽带。QSplitter可以通过setOrientation()函数来指定分割方向,子组件按加载顺序进行指定方向排列。
-
添加步骤
1)创建全局布局
2)创建分割器实例
3)为分割器添加组件
4)为全局布局添加分割器
5)为窗体设置全局布局
-
代码示例
import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QSplitter, QTextEdit class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) # 调用父类的构造函数,创建QWidget窗体 self.setupUi() def setupUi(self): """页面初始化""" # 1.创建全局布局 self.layout = QVBoxLayout() # 2.创建分割器实例 self.splitter1 = QSplitter(Qt.Horizontal) # 实例化QSplitter控件并设置初始为水平方向布局 self.splitter2 = QSplitter(Qt.Vertical) # 实例化QSplitter控件并设置初始为垂直方向布局 # 3.为分割器添加组件 self.textEdit1 = QTextEdit() self.textEdit1.setText("Window1") self.splitter1.addWidget(self.textEdit1) # 为splitter1分割器添加部件 self.splitter1.addWidget(self.splitter2) # 将分割器2部件也添加到分割器1 self.textEdit2 = QTextEdit() self.textEdit2.setText("Window2") self.splitter2.addWidget(self.textEdit2) # 为splitter2分割器添加部件 self.textEdit3 = QTextEdit() self.textEdit3.setText("Window3") self.splitter2.addWidget(self.textEdit3) # 为splitter2分割器添加部件 # 设置分割比 self.splitter1.setStretchFactor(0, 1) # 水平第1个区域,比例为1 self.splitter1.setStretchFactor(1, 2) # 水平第2个区域,比例为2 # 4.为全局布局添加分割器 self.layout.addWidget(self.splitter1) # 5.为窗体设置全局布局 self.setLayout(self.layout) if __name__ == '__main__': app = QApplication(sys.argv) myMain = QmyWidget() myMain.show() sys.exit(app.exec_())