当前位置: 代码迷 >> QT开发 >> QDockWidget布局有关问题
  详细解决方案

QDockWidget布局有关问题

热度:61   发布时间:2016-04-25 03:24:38.0
QDockWidget布局问题
我的代码:
 QTextEdit *edit=new QTextEdit(this);
    QTextEdit *edit1=new QTextEdit(this);
    QTextEdit *edit2=new QTextEdit(this);
    QTextEdit *edit3=new QTextEdit(this);
    QTextEdit *edit4=new QTextEdit(this);

    setCentralWidget(edit);

    QDockWidget *leftDock=new QDockWidget("left",this);
    leftDock->setWidget(edit1);
    leftDock->setAllowedAreas(Qt::LeftDockWidgetArea
                                      | Qt::BottomDockWidgetArea);
    addDockWidget(Qt::LeftDockWidgetArea, leftDock);

    QDockWidget *rightDock=new QDockWidget("right",this);
    rightDock->setWidget(edit2);
    rightDock->setAllowedAreas(Qt::RightDockWidgetArea
                                      | Qt::BottomDockWidgetArea);
    addDockWidget(Qt::RightDockWidgetArea, rightDock);

    QDockWidget *bottem1=new QDockWidget("bo1",this);
    bottem1->setWidget(edit3);
    bottem1->setAllowedAreas(Qt::BottomDockWidgetArea);
    addDockWidget(Qt::BottomDockWidgetArea, bottem1);

    QDockWidget *bottem2=new QDockWidget("bo2",this);
    bottem2->setWidget(edit4);
    bottem2->setAllowedAreas( Qt::BottomDockWidgetArea);
    addDockWidget(Qt::BottomDockWidgetArea, bottem2);

界面出来的效果是:

而我想要的效果是:

------解决方案--------------------
你先在弄一个widget设置为中心部件,在该widget上放置一个edit和停靠两个dockwidget
------解决方案--------------------
setAllowedAreas可以设置你想要的那种效果的

具体代码忘了 
曾经写过
------解决方案--------------------
顶,我也想直到什么办法能够做到。
底部和顶部的dockwidget好像有优先权,占用了两边dockwidget的位置。不直到这个优先权怎么设置呢。
------解决方案--------------------
void QMainWindow::setCorner ( Qt::Corner corner, Qt::DockWidgetArea area )
这个接口用于你这种需求