目录
1、属性
- allowedAreas :停靠窗口可允许停靠的位置;
- features :停靠窗口的特性;
- floating :停靠窗口是否是浮动状态;
- windowTitle :窗口标题。
2、停靠区域
- Qt::LeftDockWidgetArea = 0x1 :可以停靠左侧;
- Qt::RightDockWidgetArea = 0x2 :可以停靠右侧;
- Qt::TopDockWidgetArea = 0x4 :可以停靠上侧;
- Qt::BottomDockWidgetArea = 0x8 :可以停靠下侧;
- Qt::AllDockWidgetAreas = DockWidgetArea_Mask :可以停靠上下左右侧;
- Qt::NoDockWidgetArea = 0 :不可以停靠。
3、特性
- QDockWidget::DockWidgetClosable = 0x01 :可以关闭停靠窗口;
- QDockWidget::DockWidgetMovable = 0x02 :可以移动停靠窗口;
- QDockWidget::DockWidgetFloatable = 0x04 :可以与主窗口分离,变为浮动窗口;
- QDockWidget::DockWidgetVerticalTitleBar = 0x08 :当停靠窗口在左侧时,标题可以垂直排列;
- QDockWidget::AllDockWidgetFeatures :可关闭,移动和浮动;
- QDockWidget::NoDockWidgetFeatures = 0x00 :不可关闭,移动和浮动。
4、常用函数
- bool isFloating() const :返回,窗口是否浮动;
- void setAllowedAreas(Qt::DockWidgetAreas areas) :设置窗口的停靠区域;
- void setFeatures(QDockWidget::DockWidgetFeatures features) :设置窗口的特性;
- void setTitleBarWidget(QWidget *widget) :自定义窗口的标题栏;
- void setWidget(QWidget *widget) :设置停靠窗口的内容区域。
5、测试代码
#include "dackwidget.h"
#include <QDockWidget>
#include <QTextEdit>
DackWidget::DackWidget(QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle(tr("停靠窗口")); //设置主窗口的标题栏文字
QTextEdit *text = new QTextEdit(this);
text->setText(tr("主窗口"));
text->setAlignment(Qt::AlignCenter);
setCentralWidget(text); //将此编辑框设为主窗口的中央窗体
//停靠窗口1
QDockWidget *dock=new QDockWidget(tr("DockWindow1"),this);
//设置停靠窗口的属性,可移动
dock->setFeatures(QDockWidget::DockWidgetMovable);
//设置停靠窗口的位置
dock->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
QTextEdit *text1 =new QTextEdit();
text1->setText(tr("可移动"));
dock->setWidget(text1);
addDockWidget(Qt::RightDockWidgetArea,dock);
//停靠窗口2
dock=new QDockWidget(tr("DockWindow2"),this);
dock->setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable); //可关闭、可浮动
QTextEdit *text2 =new QTextEdit();
text2->setText(tr("可关闭、可浮动"));
dock->setWidget(text2);
addDockWidget(Qt::RightDockWidgetArea,dock);
//停靠窗口3
dock = new QDockWidget(tr("DockWindow3"),this);
dock->setFeatures(QDockWidget::AllDockWidgetFeatures); //全部特性
QTextEdit *text3 =new QTextEdit();
text3->setText(tr("全部特性"));
dock->setWidget(text3);
addDockWidget(Qt::RightDockWidgetArea,dock);
}
DackWidget::~DackWidget()
{
}
运行结果: