QDockWidget嵌套布局详解-实现Visual Studio布局

本文详细介绍了如何使用QDockWidget在QMainWindow中创建复杂的嵌套布局,包括添加、分割和标签化 dock 窗口。通过示例代码展示了如何实现九宫格布局,并提供了实现Visual Studio布局的技巧。
摘要由CSDN通过智能技术生成

QDockWidget在QMainWindow的布局函数

要在QMainWindow里对dock进行布局,需要用到如下几个函数:

·添加dock函数 

   此函数用于给dock指定位置,同时也可以更改dock的位置,此函数命名为addDockWidget有点容易误导,因为不仅仅有add的功能,还有chang的功能

void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget)
void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget, Qt::Orientation orientation)

·分割dock窗口函数 

   此函数的功能是把两个dock进行左右或上下并排布置,做成一个类似QSplit的功能

void QMainWindow::splitDockWidget(QDockWidget * first, QDockWidget * second, Qt::Orientation orientation)

·tab化窗口函数 

   此函数的功能是把多个dock变成一个tab形式的窗体

void QMainWindow::tabifyDockWidget(QDockWidget * first, QDockWidget * second)

·设置dock嵌套布局 

   此函数是设置嵌套布局的关键

void QMainWindow::setDockNestingEnabled(bool enabled)

设置嵌套布局

   下面通过例子来讲解如何设置复杂的嵌套布局 

   先用Qt Creator拖放9个dock进视图里,为了好区分,给每个dock设置一个背景颜色:

   

   dock属性随便设置,保证都任意区域可以停靠即可 

   由于这里不需要MainWindow的中间窗口,整个视图都由dock组成,因此先把QMainWindow的中间窗口部件去除: 

   在MainWindow的构造函数加入如下语句,即可把MainWindow的中间窗口去除,这时整个MainWindow只有Dock组成

QWidget* p = takeCentralWidget();
    if(p)
        delete p;

   编译出来的效果如图所示: 

   拖动dock可以发现,只能在两边进行组合,我想把dock放置到中间是无法实现的,这是由于为了简化dock的吸附,QMainWindow默认是把dock嵌套关闭的&#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值