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)

大家都在看

  • 优秀程序猿因何而优秀?

    这些年我曾和非常多程序猿一起工作。他们之中的一些人非常厉害。而还有一些人显得平凡。不久前由于和一些技术非常熟练的程序猿工作感觉非常愉快,我花了一些时间在考虑我佩服他们什么呢?什么原…

    技术杂谈 2023年5月31日
    091
  • 图像处理之水彩画特效生成算法

    在研究非真实感绘制相关算法时,水彩画算法是第一个開始看的,只是却拖到最后总结。 水彩画还是挺不好模拟的,里面涉及的算法比較多,本文实现的水彩画算法主要參考以下两篇文章,《Inter…

    技术杂谈 2023年5月31日
    0102
  • 文件夹(?)[+]

    本文以某公司iPhone 6手机预约接口开发为例,介绍PHP5下SOAP调用的实现过程。 一、基础概念 SOAP(Simple Object Access Protocol )简单…

    技术杂谈 2023年5月31日
    072
  • MybatisPlus——全网配置最全的代码生成器

    MybatisPlus代码生成器 这里讲解的是新版 (mybatis-plus 3.5.1+版本),旧版不兼容 官方文档:https://baomidou.com/(建议多看看官方…

    技术杂谈 2023年7月11日
    073
  • Java8 日期时间API

    一、转换 1、转字符串 1.1、LocalDateTime与字符串 //LocalDateTime 转 字符串 String str = DateTimeFormatter.ofP…

    技术杂谈 2023年7月11日
    077
  • Understanding the managed heap

    【 Understanding the managed heap】 1、common problem faced by many Unity developers is the u…

    技术杂谈 2023年5月31日
    0100
  • jobs 命令

    jobs命令 显示了当前 shell 环境中已启动的作业状态。如果 JobID 参数没有指定特定作业,就显示所有的活动的作业的状态信息。如果报告了一个作业的终止,shell 从当前…

    技术杂谈 2023年5月31日
    0125
  • 字典服务的设计与管理

    编码问题,谁不想避其锋芒; 一、业务背景 在搜索引擎的功能上,曾经遇到过这样一个问题,数据库中某个公司名称中存在特殊编码,尽管数据已经正常同步到索引中,但是系统中关键词始终也无法匹…

    技术杂谈 2023年7月23日
    0106
  • go 单元测试testify

    testify用go实现的一个assert风格的测试框架,这个包提供了我们需要的断言的功能,提供了非常丰富的断言方法。 提供了测试suite、断言、mock三种功能。 官方文档:h…

    技术杂谈 2023年5月31日
    083
  • 关于UIScrollView的alwaysBounceVertical属性

    在iOS开发中,经常会用到UIScrollView控件,比如UIScrollView,UICollectionView,UITableView等,这里有三个属性: @propert…

    技术杂谈 2023年5月31日
    093
  • 博客新域名www.tecchen.tech

    新年祝福 祝新的一年,大朋友实现所有梦想,小朋友健康成长~ 新域名 https://www.tecchen.tech 有效期:10年 旧链接 之前的链接请自行替换为新链接地址,包括…

    技术杂谈 2023年7月11日
    093
  • kubernetes网络模型

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年7月24日
    068
  • PYTORCH: 60分钟 | TENSORS

    Tensor是一种特殊的数据结构,非常类似于数组和矩阵。在PyTorch中,我们使用tensor编码模型的输入和输出,以及模型的参数。Tensor类似于Numpy的数组,除了ten…

    技术杂谈 2023年7月25日
    0109
  • S3上传时报错:Data read has a different length than the expected

    报错信息 使用S3上传文件时,发现存在几类报错。 第一种:Data read has a different length than the expected: dataLengt…

    技术杂谈 2023年7月25日
    067
  • Aerospike配置

    Aerospike配置 posted on2022-02-09 17:43 duanxz 阅读(66 ) 评论() 编辑 Original: https://www.cnblogs…

    技术杂谈 2023年5月30日
    074
  • [学习笔记]Java继承

    继承是面向对象编程的基石,它允许创建不同等级层次的类; 继承使得子类拥有父类的特征和行为,但是子类又可以拥有自身的特性; 通过使用继承也可以提高代码的复用性从而不用多次编写同样的代…

    技术杂谈 2023年7月24日
    065
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球