(1)创建一个QDockWidget对象的停靠窗口。
(2)设置它的属性,长用两个方法:setFeature() 和 setAllowedAreas()。
(3)新建一个要插入停靠窗口的控件,常用的有 QListWidget 和 QTextEdit
(4)将控件插入停靠窗口,调用QDockWidget的setWidget()方法。
(5)使用addDockWidget()方法在MainWindow中加入此停靠窗口。
#include "mainwindow.h"
#include <QTextEdit>
#include <QDockWidget>
MainWindow::MainWindow(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::DockWidgetClosable|QDockWidget::DockWidgetFloatable);//可关闭或可浮动
QTextEdit *te1=new QTextEdit();
te1->setText("该dock窗口可关闭或可浮动");
dock->setWidget(te1);
addDockWidget(Qt::RightDockWidgetArea,dock);
//第二个停靠窗口
dock=new QDockWidget("我的第二个dock窗口");
dock->setFeatures(QDockWidget::DockWidgetMovable);//可移动
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);
}
MainWindow::~MainWindow()
{
}
运行结果:
两个函数:
setFeatures();指定停靠窗口的特性
addDockWidget();停靠的位置