至关一部分软件界面上都会有一个停靠窗口,在不用的时候能够移动调整大小,可是他不是分割实现的,而是停靠窗口。windows
新建一个工程,名字随便取好了,类名为:dockwindows.cpp继承的基类保持mainwindow不变,取消界面选项。this
在dockwindows.cpp文件中添加如下代码:code
#include "dockwindows.h" #include <QTextEdit> #include <QDockWidget> DockWindows::DockWindows(QWidget *parent) : QMainWindow(parent) { setWindowTitle("dockwindows"); QTextEdit *text=new QTextEdit(this); text->setAlignment(Qt::AlignCenter); text->setText("主窗口"); setCentralWidget(text); //第一个停靠窗口 QDockWidget *dock=new QDockWidget("个人dock窗口",this); dock->setFeatures(QDockWidget::DockWidgetMovable); QTextEdit *te1=new QTextEdit(); te1->setText("该dock窗口能够被用户移动"); dock->setWidget(te1); addDockWidget(Qt::RightDockWidgetArea,dock); //第二个停靠窗口 dock=new QDockWidget("个人第二个dock窗口"); QTextEdit *te2=new QTextEdit(); te2->setText("这里是第二个窗口"); dock->setWidget(te2); addDockWidget(Qt::RightDockWidgetArea,dock); //第三个dock窗口 dock=new QDockWidget("这里是第三个dock窗口"); dock->setFeatures(QDockWidget::AllDockWidgetFeatures); QTextEdit *te3=new QTextEdit("这里是第三个"); dock->setWidget(te3); addDockWidget(Qt::RightDockWidgetArea,dock); } DockWindows::~DockWindows() { }运行后的结果如图:
右侧的停靠窗口能够随意移动,而且其它窗口会跟着自动调整。
继承