我是靠谱客的博主 顺利睫毛,这篇文章主要介绍实战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类继承关系:

QMdiSubWindow
QMdiSubWindow常用方法有:
- setWidget(): 向窗口设置部件;
- setSystemMenu(): 设置窗口的系统菜单;
- widget(): 获得窗口设置的部件;
- systemMenu(): 获得窗口的系统菜单;
- mdiArea: 获得拥有该窗口的QMdiArea。
QMdiSubWindow常用信号:
- aboutToActive: 窗口切换到活动状态时发射该信号;
- windowStateChanged: 窗口的状态发生了改变时发射该信号。
QMdiSubWindow类继承关系:
最后
以上就是顺利睫毛最近收集整理的关于实战PyQt5: 051-多窗口文档控件QMdiAreaMDI应用程序QMdiAreaQMdiSubWindowMDI应用样例本文知识点的全部内容,更多相关实战PyQt5:内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复