QMdiArea 多文档区域

QMdiArea widget 提供了一个可以在上面显示多窗口的区域。

本质上,像一个管理多窗口的窗口管理器,它在自己上面绘制要管理的窗口,并以cascading(串联)或者是tile(瓦片)模式安排显示的多窗口。

QMdiArea 一般用作QMainWindow的centralWidget(如果要创建多窗口的话),但是它也可以在任何Layout中。下面的代码将在QMainWindow中添加一个QMdiArea

QMdiArea * mdiArea = new QMdiArea;
QMainWindow * mainWindow = new QMainWindow;
mainWindow->setCentralWidget(mdiArea);

不像顶级窗口的窗口管理器那样,只要当前widget style 支持的Qt::WindowFlags,QMdiArea都支持。

在QMdiArea中的子窗口都是QMdiSubWindow的实例。他们通过addSubWindow()添加到QMidArea中。

一个子窗口当它得到keyboard focus时,或者setFocus()被调用时被激活。用户用一般的方法就可以激活一个窗口。当active window 改变时,Mdi area 会发射一个subWindowActived()的信号,activeSubWindow()

返回一个active subWindow。

subWindowList()返回一个subWindow 的list。很有用,例如,可以用来弹出包含subWindow信息的菜单。

subWindow 有排练顺序,默认是当前WindowOrder。subWindowList() 和 activeNextSubWindow()和

activePreviousWindow()都依赖这个顺序。两种排列模式cascadeSubWindow()和tileSubWindow()也用的到。

这个WindowOrder有3种:

enum QMdiArea::WindowOrder {

QMdiArea::CreationOrder    =    0,
QMdiArea::StackingOrder    =    1,
QMdiArea::ActivationHistoryOrder    =    2
};

1,按创建顺序。

2,在栈中的顺序。

3,历史激活的顺序。

 

 

 

 

 

 

转载于:https://www.cnblogs.com/lc-cnblong/archive/2013/02/02/2890457.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值