概述
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: 051-多窗口文档控件QMdiAreaMDI应用程序QMdiAreaQMdiSubWindowMDI应用样例本文知识点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复