学習PYQT5は(13):QMidAreaは、同時に複数のウィンドウを表示し、複数の独立したウィンドウを作成します

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

  レンダリング:効果をタイリング--------- -------新しいカスケード効果を作成します。

 

おすすめ

転載: www.cnblogs.com/cgy1995/p/11127195.html