''' 容纳多文档的窗口 QMdiArea QMdiSubWindow ''' import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class MultiWindows(QMainWindow): count = 0 def __init__(self, parent=None): super(MultiWindows, self).__init__(parent) self.setWindowTitle("容纳多文档的窗口") self.mdi = QMdiArea() self.setCentralWidget(self.mdi) bar = self.menuBar() file = bar.addMenu("File") file.addAction("New") file.addAction("cascade") file.addAction("Tiled") file.triggered.connect(self.windowaction) def windowaction(self,q): print(q.text()) if q.text() == "New": MultiWindows.count = MultiWindows.count + 1 sub = QMdiSubWindow() sub.setWidget(QTextEdit()) sub.setWindowTitle("子窗口" + str(MultiWindows.count)) self.mdi.addSubWindow(sub) sub.show() elif q.text() == "cascade": self.mdi.cascadeSubWindows() elif q.text() == "Tiled": self.mdi.tileSubWindows() if __name__ == '__main__': app = QApplication(sys.argv) demo = MultiWindows() demo.show() sys.exit(app.exec_())