版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38784098/article/details/77579327
1.创建一个QDockWidget对象,新建小项目
2.实例代码
#include "QDockWidgetdemo.h"
#include <QTextEdit>
#include <QDockWidget>
QDockWidgetdemo::QDockWidgetdemo(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
setWindowTitle(tr("DockWindows"));//设置窗口标题
QTextEdit *te = new QTextEdit(this);
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();
te1->setText(tr("Window1,the dock widget can be moved between docks by the users"));
dock->setWidget(te1);
addDockWidget(Qt::RightDockWidgetArea, dock);//初始位置
//停靠窗口2
dock = new QDockWidget(tr("DockWindow2"), this);
dock->setFeatures(QDockWidget::DockWidgetClosable| QDockWidget::DockWidgetFloatable);//可关闭可浮动
QTextEdit *te2 = new QTextEdit();
te2->setText(tr("Window2,the dock widget can be detached from the main window"));
dock->setWidget(te2);
addDockWidget(Qt::RightDockWidgetArea, dock);//初始位置
//停靠窗口2
dock = new QDockWidget(tr("DockWindow3"), this);
dock->setFeatures(QDockWidget::AllDockWidgetFeatures);//全部特性
QTextEdit *te3 = new QTextEdit();
te3->setText(tr("Window2,the dock widget can be closed ,moved,and floted"));
dock->setWidget(te3);
addDockWidget(Qt::RightDockWidgetArea, dock);//初始位置
}
3.运行效果:
注:控件属性补充
A.
setFeatures()
QDockWidget::DockWidgetMovable//可移动
QDockWidget::DockWidgetClosable//可关闭
QDockWidget::DockWidgetFloatable//可浮动
QDockWidget::AllDockWidgetFeatures//所有特性
QDockWidget::NoDockWidgetFeatures//不可移动,关闭,浮动
B.
setAllowedAreas()
Qt::LeftDockWidgetArea//主窗口左侧
Qt::RightDockWidgetArea//右侧
Qt::TopDockWidgetArea//顶端
Qt::BottomDockWidgetArea//底部
Qt::AllDockWidgetArea//任意位置
Qt::NoDockWidgetArea//只可停在插入处
对于QT布局可以关注我的一些其他博客,希望对各位有帮助