QMidArea参考記事:https://blog.csdn.net/jia666666/article/details/81670569
同時に複数のウィンドウを表示するための方法であって、複数の独立したウィンドウを作成し、これらの別々のウィンドウがSDI(シングルドキュメントインターフェイスシングルドキュメントインターフェイス)と呼ばれ、各ウィンドウは必要など、独自のメニューシステム、ツールバーを有していますリソースの多くを取ります。
MDI(マルチドキュメントインターフェイスマルチドキュメントインターフェイス)アプリケーションは、より少ないメモリリソースを消費し、サブウインドウは、コンテナのメインウィンドウに配置することができ、容器のスペースをQMidArea呼ばれ
QMidArea空間は、通常、内部統制は、任意の子ウィンドウオブジェクトをQWidgetのように、この領域での子ウィンドウQMidSubWindowクラスのインスタンスは、サブウインドウレイアウト面積MDIカスケードに配置、提供されてもよいし、物体の中心位置にQMainWindowを占領しました
輸入SYS PyQt5.QtWidgetsからははQApplication、QMainWindow、QMdiArea、QMdiSubWindow、QLabelのインポート :クラスMidArea(QMainWindow) デフ__init __(自己): スーパー().__のinit __() self.initUI() initUI(自己)DEF: self.setWindowTitle( 'デモ') self.setGeometry(300300300200) バー= self.menuBar() ファイル= bar.addMenu( 'ファイル') file.addAction( '新しい') file.addAction( 'カスケード') file.addAction( 'タイル' ) file.triggered.connect(self.showWindow) #------定义QMdiArea、用来放置子窗口------ self.area = QMdiArea() self.setCentralWidget(self.area) SHOWWINDOW DEF(自己、データ): テキスト= data.text() ==テキスト'新しい新しい' IF: #新しいウィンドウの作成 サブウィンドウをQMdiSubWindow =() #は、子ウィンドウのアセンブリを追加 subwindow.setWindowTitle( 'QMdiSubWindowです') subwindow.setWidget(QLabel( 'こんにちは')) #は、ウィンドウ領域QmdiAreaに単語を追加し self.area.addSubWindow(サブウィンドウ) #サブウィンドウ表示 subwindow.show() テキスト== 'カスケード' IF: #表示設定ウィンドウカスケード self.area.cascadeSubWindows() テキスト== 'タイル' IF: #設定ウィンドウタイル self.area.tileSubWindows() IF __name__ __ == '__ MAIN__': アプリ=はQApplication(sys.argvの) デモ= MidArea() demo.show() sys.exit(app.exec_())
レンダリング:効果をタイリング--------- -------新しいカスケード効果を作成します。