实战PyQt5: 051

您所在的位置:网站首页 mdi的使用方法 实战PyQt5: 051

实战PyQt5: 051

2023-12-11 18:21| 来源: 网络整理| 查看: 265

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类继承关系:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3