您的位置:首页 > 编程语言 > Qt开发

也谈qt中QMdiArea和QSubWindow(实现子窗口管理)

2012-10-16 11:49 615 查看
昨天才静下心来仔细看了看QMdiArea

作为MainWindow的中央部件,QMdiArea的作用还是相当大的

首先是向QMdiArea中添加QSubWindow和从QMdiArea中删除QsubWindow

QSubWindow * addSubWindow(QWidget * widget);

widget可以是QSubWindow或者直接是QWidget及子类,若是后者的话QMdiArea会自动创建一个QSubWindow,然后将widget置为QSubWindow的setWidget();

首先removeSubWindow,不会删除widget,再有就是点击subWindow的close 按钮,mdi不会调用removeSubWindow,只是隐藏widget,要重新显示subWindow,只用subWindow->showNormal(),form->show();

想隐藏也可以直接调用subWindow的hide()函数

正统的关闭和显示是addSubWindow和removeSubWindow的成对调用。

可以设置设置subWindow和其widget的WA_DeleteOnClose属性,关闭时会删除subWindow和其widget,再显示时复制创建form和subWindow,这种情况在有些情况下还是有必要的,至少节约内存
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: