QDockWidget

目录

1、属性

2、停靠区域

3、特性

4、常用函数

5、测试代码


1、属性

  1. allowedAreas :停靠窗口可允许停靠的位置;
  2. features :停靠窗口的特性;
  3. floating :停靠窗口是否是浮动状态;
  4. windowTitle :窗口标题。

2、停靠区域

  1. Qt::LeftDockWidgetArea = 0x1 :可以停靠左侧;
  2. Qt::RightDockWidgetArea = 0x2 :可以停靠右侧;
  3. Qt::TopDockWidgetArea = 0x4 :可以停靠上侧;
  4. Qt::BottomDockWidgetArea = 0x8 :可以停靠下侧;
  5. Qt::AllDockWidgetAreas = DockWidgetArea_Mask :可以停靠上下左右侧;
  6. Qt::NoDockWidgetArea = 0 :不可以停靠。

3、特性

  1. QDockWidget::DockWidgetClosable = 0x01 :可以关闭停靠窗口;
  2. QDockWidget::DockWidgetMovable  = 0x02 :可以移动停靠窗口;
  3. QDockWidget::DockWidgetFloatable  = 0x04 :可以与主窗口分离,变为浮动窗口;
  4. QDockWidget::DockWidgetVerticalTitleBar = 0x08 :当停靠窗口在左侧时,标题可以垂直排列;
  5. QDockWidget::AllDockWidgetFeatures :可关闭,移动和浮动;
  6. QDockWidget::NoDockWidgetFeatures  = 0x00 :不可关闭,移动和浮动。

4、常用函数

  1. bool isFloating() const :返回,窗口是否浮动;
  2. void setAllowedAreas(Qt::DockWidgetAreas areas) :设置窗口的停靠区域;
  3. void setFeatures(QDockWidget::DockWidgetFeatures features) :设置窗口的特性;
  4. void setTitleBarWidget(QWidget *widget) :自定义窗口的标题栏;
  5. 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()
{

}

运行结果: