Qt下创建类似window平台的MDI多文档区域使用QMdiArea
QMdiArea * mdiArea; mdiArea = new QMdiArea(this); //A widget 为window MDI 提供一个区域 mdiArea->setFocusPolicy(Qt::ClickFocus); //接收鼠标单击策略 mdiArea->setViewMode(QMdiArea::TabbedView); //页切换模式 tab模式 mdiArea->setTabsClosable(false);//每个tab上放置红叉关闭某一个tab ,false:没有叉;true:有叉 mdiArea->setTabsMovable(true);//多个tab可鼠标拖动摆放顺序 mdiArea->setTabShape(QTabWidget::Triangular);//tab的形状,Rounded圆角型;Triangular三角形 QVBoxLayout * lyt = new QVBoxLayout; //垂直布局管理器 lyt->setContentsMargins(0,0,0,0);//左上右下 的margin ,around the layout(lyt) lyt->addWidget(mdiArea);//在layout(lyt)的末尾添加 widget(mdiArea) QFrame * frm = new QFrame(this); //创建一个框架 frm->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);//框架显示外形。 //StylePanel画一个矩形面板,根据当前GUI风格的不同而不同,可被凸起或凹陷 //Sunken画一个3D的凹陷显示效果 frm->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);//大小策略 //水平和垂直都可收缩(shrunk) frm->setLayout(lyt);//设置frm的布局管理 //如果此widget(frm)上已有 layout ,那么必须先删除已有的,再添加新的 setCentralWidget(frm);//设置参数为 main window‘s central widget