Qt dock小部件的使用

今天复习发现的一个dock部件,这是一个非常好用的拖拉界面的部件。
其一:分页。
在这里插入图片描述
在这之前我自己写过类似浏览器的添加页签(也包括那个 关闭按钮,这边dock可以自己自定义控件)。
当时也用到了许多知识点,过程写的稍显复杂。(需要用QMap键值对来存取,每一个页面对应一个html等等。。。)现在发现可以直接使用dock小部件来完成这项功能。

其二:拖拉窗口。
在这里插入图片描述
将分页拖拉出来,这也是浏览器的功能之一。稍显可惜的是前面我说我自己做过类似浏览器分页的这款功能,但我当时并没有考虑到这个技术点,所以也并不知道自己写这个轮子的复杂过程。希望我有机会还是接着把那个项目按这个需求给补充完。

接下来贴上代码~~~~

#include "dockwindows.h"
#include <QTextEdit>
#include <QDockWidget>
DockWindows::DockWindows(QWidget *parent)
    : QMainWindow(parent)
{
    setWindowTitle(tr("DockWindows"));      //设置主窗口的标题栏文字
    QTextEdit *te = new QTextEdit(this);    //定义一个QTextEdit 对象作为主窗口
    te->setText(tr("Main  Window"));
    te->setAlignment(Qt::AlignCenter);
    setCentralWidget(te);                   //将此编译框设为主窗口的中央窗体
    //停靠窗口 1
    QDockWidget *dock = new QDockWidget (tr("DockWindow1"),this);
    dock->setFeatures(QDockWidget::DockWidgetMovable);//可移动
    dock->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
    QTextEdit *te1 = new QTextEdit();
                            /*        dock小部件可以被用户在dock之间移动          */
    te1->setText(tr("Window1,The dock widget can be moved between docks by the user" ""));
    dock->setWidget(te1);
    addDockWidget(Qt::RightDockWidgetArea,dock);

    //停靠窗口 2
    dock = new QDockWidget (tr("DockWindow2"),this);
    dock->setFeatures(QDockWidget::DockWidgetClosable|
                      QDockWidget::DockWidgetFloatable);//可关闭、可浮动

    QTextEdit *te2 = new QTextEdit();
                            /*            dock小部件可以与主窗口分离              *//*         并且浮动为一个独立的窗口,并且可以关闭       */   
    te2->setText(tr("Window2,The dock widget can be detached from the main window," "and floated as an independent window, and can be closed"));
    dock->setWidget(te2);
    addDockWidget(Qt::RightDockWidgetArea,dock);

    //停靠窗口 3
    dock = new QDockWidget (tr("DockWindow3"),this);
    dock->setFeatures(QDockWidget::AllDockWidgetFeatures);//全部特性

    QTextEdit *te3 = new QTextEdit();
                             /*         dock小部件可以被关闭、移动和浮动        */
    te3->setText(tr("Window3,The dock widget can be closed , moved , and floated,"));
    dock->setWidget(te3);
    addDockWidget(Qt::RightDockWidgetArea,dock);
}

DockWindows::~DockWindows()
{

}

在这里插入图片描述
在这里插入图片描述

大亮点我认为dock就是这两点,其他的一些小细节我也不好一一截图,我把源码上传你到CSDN上,你们可以自行下载下来体验体验哈~~~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值