我是靠谱客的博主 顺利睫毛,最近开发中收集的这篇文章主要介绍实战PyQt5: 051-多窗口文档控件QMdiAreaMDI应用程序QMdiAreaQMdiSubWindowMDI应用样例本文知识点,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

MDI应用程序

在传统的GUI应用程序设计中,有一类称作多文档接口(Multi-Document Interface, 简称MDI)应用程序,在MDI程序中,一个显示区域维护多个窗口文件(就像Windows在一个屏幕上维护多个应用程序窗口一样)。

PyQt为设计MDI应用程序提供了支持,通过控件QMdiArea提供了一个可以同时显示多个文档的区域。本质上说,QMdiArea就像是多文档窗口的窗口管理器。例如,它将它所管理的窗口绘制在它上面,并且以级联或者平铺的方式放置这些窗口。通常情况下,QMdiArea用作QMainWindow的中心控件,以此来创建一个MDI应用程序。但是,它也可以被放置在任何布局类中。

QMdiArea中的子窗口是QMdiSubWindow的实例化对象。通过调用addSubWindow来将他们加入MDI区域。通常情况下是传递一个QWidget作为内部控件给这个函数。但是直接传递QMdiSubWindow也是可以的。

子窗口在获得键盘焦点或者调用setFocus时变为激活状态。用户通常通过移动焦点的方式来激活窗口,当活动窗口发生改变时,MDI区域发出subWindowActive信号。

QMdiArea

QMdiArea常用方法有:

  • addSubWindow(): 添加子窗口;
  • removeSubWindow(): 移除子窗口;
  • setBackground(): 设置工作区背景颜色,默认为深灰色;
  • setViewMode(): 设置视图模式: QMdiArea.SubWindowView: 0, 显示带有窗口框架的子窗口(默认)。QMdiArea::TabbedView: 1, 在选项卡栏中显示带有选项卡的子窗口;
  • setTabShape(): 设置标签页的形状,QTabWidget.Rounded圆角型;QTabWidget.Triangular三角形。
  • setTabsMovable(): 多个tab时用鼠标拖动摆放顺序;
  • setTabsCloseable(): 默认为否,设置为True时,会在tab上方形成一个小关闭按钮;
  • closeAllSubWindows(): 关闭所有子窗口;
  • closeActiveSubWidow(): 关闭当前处于激活状态的子窗口;
  • tileSubWindows(): 将所有子窗口平铺显示;
  • cascadeSubWindow(): 将所有子窗口级联显示;

QMdiArea常用信号:

  • subWindowActivated: 特定子窗口被激活时发射该信号

QMdiArea类继承关系:

实战PyQt5: 051-多窗口文档控件QMdiArea

 

QMdiSubWindow

QMdiSubWindow常用方法有:

  • setWidget(): 向窗口设置部件;
  • setSystemMenu(): 设置窗口的系统菜单;
  • widget(): 获得窗口设置的部件;
  • systemMenu(): 获得窗口的系统菜单;
  • mdiArea: 获得拥有该窗口的QMdiArea。

QMdiSubWindow常用信号:

  • aboutToActive: 窗口切换到活动状态时发射该信号;
  • windowStateChanged: 窗口的状态发生了改变时发射该信号。

QMdiSubWindow类继承关系:

最后

以上就是顺利睫毛为你收集整理的实战PyQt5: 051-多窗口文档控件QMdiAreaMDI应用程序QMdiAreaQMdiSubWindowMDI应用样例本文知识点的全部内容,希望文章能够帮你解决实战PyQt5: 051-多窗口文档控件QMdiAreaMDI应用程序QMdiAreaQMdiSubWindowMDI应用样例本文知识点所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部