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()