PYQT5学习(13):QMidArea同时显示多个窗口,创建多个独立的窗口

QMidArea 参考文章:https://blog.csdn.net/jia666666/article/details/81670569

一种同时显示多个窗口的方法,创建多个独立的窗口,这些独立的窗口被称为SDI(single document interface 单文档界面),每个窗口都有自己的菜单系统,工具栏等,这需要占用很多资源。

MDI( multiple document interface 多文档界面)应用程序占用较少的内存资源,子窗口可以放在主窗口的容器中,这个容器空间被称为QMidArea

QMidArea 空间通常占据在QMainWindow对象的中央位置,子窗口在这个区域是QMidSubWindow类的实例,可以设置任何QWidget作为子窗口对象的内部控件,子窗口在MDI区域进行级联排列布局

PYQT5学习(13):QMidArea同时显示多个窗口,创建多个独立的窗口

python;gutter:true; import sys from PyQt5.QtWidgets import QApplication,QMainWindow,QMdiArea,QMdiSubWindow,QLabel</p> <p>class MidArea(QMainWindow): def <strong>init</strong>(self):</p> <pre><code> super().__init__() self.initUI() def initUI(self): self.setWindowTitle('demo') self.setGeometry(300,300,300,200) bar=self.menuBar() file=bar.addMenu('File') file.addAction('new') file.addAction('cascade') file.addAction('tile') file.triggered.connect(self.showWindow) #------定义QMdiArea,用来放置子窗口------ self.area=QMdiArea() self.setCentralWidget(self.area) def showWindow(self,data): text=data.text() if text=='new': #创建一个新的窗口 subwindow=QMdiSubWindow() #为子窗口添加组件 subwindow.setWindowTitle('这是QMdiSubWindow') subwindow.setWidget(QLabel('hello')) #将字窗口添加到区域QmdiArea self.area.addSubWindow(subwindow) #子窗口显示 subwindow.show() if text=='cascade': #设置窗口级联显示 self.area.cascadeSubWindows() if text=='tile': #设置窗口平铺显示 self.area.tileSubWindows() </code></pre> <p>if <strong>name</strong>=='<strong>main</strong>': app=QApplication(sys.argv)</p> <pre><code>demo=MidArea() demo.show() sys.exit(app.exec_()) </code></pre> <p>

效果图:创建新的——-级联效果———平铺效果

PYQT5学习(13):QMidArea同时显示多个窗口,创建多个独立的窗口

Original: https://www.cnblogs.com/cgy1995/p/11127195.html
Author: spiderMan1-1
Title: PYQT5学习(13):QMidArea同时显示多个窗口,创建多个独立的窗口

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/712132/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球