1 介绍
开发的上位机软件中需要在主窗口内部增加多个活动的子窗口,子窗口需要满足以下条件:
- 能够像普通窗口一样放置任何部件,比如按钮,标签,文本框,编辑框,下拉菜单;
- 必须在主窗口内部,不允许移出去;
这种情况下采用多文档窗口MDiArea类是可以的,官方例程及网上的大部分资料虽然都是基于建立多个窗口的文本编辑器,并没有给出子窗口放置任一部件的例子,但是官方文档中说明可以像普通窗口一样使用基于MdiArea的子窗口。
2 主窗口放置MdiArea
Qt设计师导航栏中将“MDI Area”拖入主窗体,在属性中设置背景颜色为黑色,部件大小不用设置,在代码中将其设置为中心部件,就可以将多文档区域最大化。水平和垂直滚动条策略设置为ScrollBarAsNeeded,当子窗口拖动时,会出现需要滚动条。将框架设置为了Box Sunken模式,设置为中心部件的代码如下
setCentralWidget(ui->mdiArea);