將水平或者垂直的布局修改為可以拖動長寬的布局
Splitter.py
""" 拖動控件之間的邊界(Splitter) """ import sys, math from PyQt5.QtWidgets import * from PyQt5.QtCore import Qt class Splitter(QWidget): def __init__(self): super(Splitter, self).__init__() self.initUI() def initUI(self): hbox = QHBoxLayout(self) self.setWindowTitle("QSplitter 例子") self.setGeometry(300, 300, 300, 200) topleft = QFrame() topleft.setFrameShape(QFrame.StyledPanel) bottom = QFrame() bottom.setFrameShape(QFrame.StyledPanel) #設置可拖動的布局為水平 splitter1 = QSplitter(Qt.Horizontal) textedit = QTextEdit() splitter1.addWidget(topleft) splitter1.addWidget(textedit) #設置水平兩個控件的寬 splitter1.setSizes([200, 200]) #設置可拖動的布局為垂直 splitter2 = QSplitter(Qt.Vertical) splitter2.addWidget(splitter1) splitter2.addWidget(bottom) hbox.addWidget(splitter2) self.setLayout(hbox) if __name__ == "__main__": app = QApplication(sys.argv) main = Splitter() main.show() sys.exit(app.exec_())