Vensterindeling aanpassen met frames

Op deze pagina:

    Een venster kan in meerdere blokken worden verdeeld die vervolgens door de gebruiker aangepast kunnen worden.

    
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    
    import sys
    
    from PyQt5.QtWidgets import QApplication, QWidget, QFrame, QHBoxLayout, QSplitter, QStyleFactory, QTextEdit, QPushButton, QLabel
    from PyQt5.QtCore import Qt
    
    class Venster(QWidget):
    
        def __init__(self):
            super(Venster, self).__init__()
    
            self.initUI()
    
        def initUI(self):
    
            hbox = QHBoxLayout(self)
    
            linksboven = QFrame(self)
            linksboven.setFrameShape(QFrame.StyledPanel)
    
    
            rechtsboven = QFrame(self)
            rechtsboven.setFrameShape(QFrame.StyledPanel)
    
            onder = QFrame(self)
            onder.setFrameShape(QFrame.StyledPanel)
            
            textedit = QTextEdit()
    
            splitter1 = QSplitter(Qt.Horizontal)
            splitter1.addWidget(linksboven)
            splitter1.addWidget(textedit)
            splitter1.addWidget(rechtsboven)
            knop = QPushButton('Rechts', self)
            knop.setCheckable(True)
            knop.setStyleSheet("QWidget { background-color: red; }")
            splitter1.addWidget(knop)
            
            splitter2 = QSplitter(Qt.Vertical)
            splitter2.addWidget(splitter1)
            splitter2.addWidget(onder)
            la = QLabel(self)
            la.setText('Onder')
            la.setStyleSheet("QWidget { background-color: yellow; }")
            splitter2.addWidget(la)
            
            hbox.addWidget(splitter2)
            self.setLayout(hbox)
            QApplication.setStyle(QStyleFactory.create('Cleanlooks'))
    
            self.setGeometry(400, 400, 300, 200)
            self.setWindowTitle('Venster indelen')
            self.show()
    
    def main():
    
        app = QApplication(sys.argv)
        window = Venster()
        sys.exit(app.exec_())
    
    if __name__ == '__main__':
        main()
    

    venstersplitter

     

    Verwante artikelen