Deelvensters stapelen of tegelen
Op deze pagina:
Als je een venster wilt onderverdelen in deelvensters, dan kan je QMdiArea hiervoor gebruiken. je kan de deelvenster stapelen of tegelen. De ddelvensters kan een gebruiker beetpakken met de muis en verplaatsen of van grootte veranderen.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
'''
Stapelen of tegelen
'''
import sys
from PyQt5.QtWidgets import QMainWindow, QMdiArea, QAction, QMdiSubWindow, QTextEdit, QApplication
class MainWindow(QMainWindow):
aantal = 0
def __init__(self, parent = None):
super(MainWindow, self).__init__(parent)
self.mdi = QMdiArea()
self.setCentralWidget(self.mdi)
bar = self.menuBar()
file = bar.addMenu("Vensters")
file.addAction("Nieuw") # nieuw deelvenster
file.addAction("Stapelen") # deelvensters stapelen
file.addAction("Tegelen") # deelvensters tegelen
file.triggered[QAction].connect(self.windowaction)
self.setWindowTitle("Stapelen of tegelen")
def windowaction(self, q):
if q.text() == "&Nieuw":
MainWindow.aantal = MainWindow.aantal+1
sub = QMdiSubWindow()
sub.setWidget(QTextEdit())
sub.setWindowTitle("subvenster "+str(MainWindow.aantal))
self.mdi.addSubWindow(sub)
sub.show()
if q.text() == "&Stapelen":
self.mdi.cascadeSubWindows()
if q.text() == "&Tegelen":
self.mdi.tileSubWindows()
def main():
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()