Qt dock小部件的使用

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

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

接下来贴上代码~~~~

#include "dockwindows.h"
#include 
#include 
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()
{

}

Qt dock小部件的使用_第3张图片
Qt dock小部件的使用_第4张图片

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

你可能感兴趣的:(Qt,qt5,qt)