> 文章列表 > QMdiArea(一个可以同时显示多个文档窗口的区域)

QMdiArea(一个可以同时显示多个文档窗口的区域)

QMdiArea(一个可以同时显示多个文档窗口的区域)

QMdiArea(Multiple Document Interface Area)提供了一个可以同时显示多个文档窗口的区域。

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

QMdiArea支持所有的窗口标志,只要这些窗口标志被当前控件样式支持。

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

当一个子窗口获得键盘焦点或者setFocus被调用,这个子窗口便被激活。当激活窗口改变时,subWindowActivated信号会被触发。activeSubWindow函数会返回当前激活的窗口。

subWindowList是一个十分方便的函数,可以用来返回所有子窗口列表。这个信息可以被用在包含窗口列表的弹出菜单上面。

QMdiArea为子窗口提供了两个内建的布局策略:cascadeSubWindows()和tileSubWindows()。这两个策略都是槽函数而且很容易与菜单条目连接。

注意 QMdiArea的默认滚动条属性是Qt::ScrolBarAlwaysOff。