📂PYQT5
🔖Pyqt5
2019-07-03 16:21阅读: 5753评论: 0推荐: 0

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区域进行级联排列布局

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QMdiArea,QMdiSubWindow,QLabel
 
class MidArea(QMainWindow):
    def __init__(self):
         
        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()
             
 
 
 
if __name__=='__main__':
    app=QApplication(sys.argv)
    
    demo=MidArea()
    demo.show()
    sys.exit(app.exec_())

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

 

本文作者:spiderMan1-1

本文链接:https://www.cnblogs.com/cgy1995/p/11127195.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   spiderMan1-1  阅读(5753)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.