PyQt5中的布局管理-QSplitter


PyQt還提供了一個特殊的布局管理器QSplitter,它可以動態地拖動子控件之間的邊界,算是一個動態的局部管理器。

QSplitter允許用戶通過拖動子控件的邊界來控制子控件的大小,並提供了一個處理拖曳子控件的控制器。

在QSplitter對象中各子控件默認是橫向布局的,可以使用Qt.Vertical進行垂直布局。

QSplitter類中的常用方法:

  addWidget()    將小控件添加到QSplitter管理器的布局中

  indexOf()      返回小控件在QSplitter管理器中的索引

  insertWidget()   根據指定的索引將一個控件插入到QSplitter管理器中

  setOrientation()   設置布局方向:

             Qt.Horizontal,水平方向

             Qt.Vertical,垂直方向

  setSizes()     設置控件的初始大小

  count()      返回小控件在QSplitter管理器中的數量

 

import sys
from PyQt5.QtWidgets import QWidget, QApplication, QHBoxLayout, QFrame, QSplitter, QTextEdit
from PyQt5.QtCore import Qt


class MyWindow(QWidget):
    def __init__(self):
        super().__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([100, 200])

        splitter2 = QSplitter(Qt.Vertical)
        splitter2.addWidget(splitter1)
        splitter2.addWidget(bottom)
        hbox.addWidget(splitter2)
        self.setLayout(hbox)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MyWindow()
    win.show()
    sys.exit(app.exec_())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM