界面如下圖: 動圖效果演示: ...
1 import sys 2 from PyQt5.QtWidgets import (QApplication, 3 QWidget, 4 QSplitter, 5 QTextEdit, 6 QPushButton, 7 QLabel) 8 from PyQt5.QtCore import (Qt, QSettings) 9 10 11 class Window(QWidget): 12 def __init__(self, parent=None): 13 super(Window, self).__init__(parent, flags=Qt.Window) 14 15 # 創建父控制項為 Window 的分割視窗: 16 splitter_0 = QSplitter(self) 17 # 設置分割視窗下的控制項不可摺疊: 18 splitter_0.setChildrenCollapsible(False) 19 # 設置分割條的寬度: 20 splitter_0.setHandleWidth(35) 21 # 設置分割視窗大小: 22 splitter_0.resize(600, 450) 23 24 splitter_0.addWidget(QTextEdit()) 25 26 # 創建父控制項為 splitter_0 的分割視窗: 27 splitter_1 = QSplitter(splitter_0) 28 # 設置分割視窗的方向: 29 splitter_1.setOrientation(Qt.Horizontal) 30 # 為分割視窗添加控制項: 31 splitter_1.addWidget(QTextEdit('橫向排列')) 32 splitter_1.addWidget(QTextEdit('橫向排列')) 33 splitter_1.addWidget(QTextEdit('橫向排列')) 34 # 設置分割視窗下的控制項的寬度,如果是垂直排列的則是高度: 35 splitter_1.setSizes([120, 80, 60]) 36 # 設置分隔條是否跟隨滑鼠移動: 37 splitter_1.setOpaqueResize(False) 38 39 # 創建父控制項為 splitter_0 且垂直分割的分割視窗: 40 splitter_2 = QSplitter(Qt.Vertical, splitter_0) 41 # 為分割視窗插入控制項: 42 splitter_2.insertWidget(0, QTextEdit('垂直排列')) 43 splitter_2.insertWidget(1, QTextEdit('垂直排列')) 44 # 根據 ID 來設置分割視窗中的控制項比例: 45 splitter_2.setStretchFactor(0, 1) 46 splitter_2.setStretchFactor(1, 3) 47 # 根據 ID 來設置分割視窗下的控制項是否可以摺疊: 48 splitter_2.setCollapsible(0, False) 49 splitter_2.setCollapsible(1, True) 50 51 self.show() 52 53 54 if __name__ == "__main__": 55 app = QApplication(sys.argv) 56 window = Window() 57 sys.exit(app.exec_())
界面如下圖:
動圖效果演示: