停靠窗口 QDockWidget 类也是在应用程序中经常用到的
以下实例:
窗口一只能在主窗口的右侧停靠
窗口二只能在浮动和右部停靠两种状态间切换
窗口三可以实现停靠窗口的各种状态
新建Qt Widgets Application ,项目名称为DockWidget
基类选择 QMainWindow
取消“创建界面”复选框选中状态
#include "mainwindow.h"
#include <QTextEdit>
#include <QDockWidget>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle("DockWindows");//设置标题栏文字
QTextEdit *te = new QTextEdit(this); //定义一个QTextEdit对象作为主窗口
te->setAlignment(Qt::AlignCenter);
setCentralWidget(te); //将此编辑框设为主窗口的中央窗体
QDockWidget *dock1 = new QDockWidget("DockQWindows1",this);
dock1->setFeatures(QDockWidget::DockWidgetMovable);//设置可移动
//QDockWidget::DockWidgetMovable 设置可移动
//QDockWidget::DockWidgetClosable 设置可关闭
//QDockWidget::DockWidgetFloatable 设置可浮动
//QDockWidget::AllDockWidgetFeatures 设置全部特性
//QDockWidget::NoDockWidgetFeatures 设置没有特性
dock1->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
QTextEdit *te1 = new QTextEdit(this);
dock1->setWidget(te1);
addDockWidget(Qt::RightDockWidgetArea,dock1);
//Qt::LeftDockWidgetArea 设置做停靠
//Qt::RightDockWidgetArea 设置右停靠
//Qt::topDockWidgetArea 设置顶部停靠
//Qt::BottomDockWidgetArea 设置底部停靠
//Qt::AllDockWidgetArea 设置到处停靠
//Qt::NoDockWidgetArea 只能停靠在插入处
QDockWidget *dock2 = new QDockWidget("DockQWindows2",this);
dock2->setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable);//设置可关闭,可浮动
dock2->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
QTextEdit *te2 = new QTextEdit(this);
dock2->setWidget(te2);
addDockWidget(Qt::RightDockWidgetArea,dock2);
QDockWidget *dock3 = new QDockWidget("DockQWindows3",this);
dock3->setFeatures(QDockWidget::AllDockWidgetFeatures);//设置全部特性
dock3->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
QTextEdit *te3 = new QTextEdit(this);
dock3->setWidget(te3);
addDockWidget(Qt::RightDockWidgetArea,dock3);
}