MDI QMdiArea 多文档区域

Posted 我是张洪铭我是熊博士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MDI QMdiArea 多文档区域相关的知识,希望对你有一定的参考价值。

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

 

以上是关于MDI QMdiArea 多文档区域的主要内容,如果未能解决你的问题,请参考以下文章

QMdiArea如何设置Tab尺寸

Python Qt GUI设计:QMdiArea和QMdiSubWindow类实现多文档界面(拓展篇—3)

多文档界面QMdiArea

Qt--QMdiArea和QMdiSubWindow的基本用法

QMdiArea 子窗口中的 QDockWidget 不能停靠在顶部和底部

MDI多文档界面管理