目录
4.1 浮动窗⼝的创建
4.2 设置停靠的位置
浮动窗⼝
在 Qt 中,浮动窗⼝也称之为铆接部件。浮动窗⼝是通过 QDockWidget类 来实现浮动的功能。浮动窗 ⼝⼀般是位于核⼼部件的周围,可以有多个。
4.1 浮动窗⼝的创建
浮动窗⼝的创建是通过 QDockWidget类 提供的构造⽅法 QDockWidget()函数 动态创建的;⽰例如
下:

4.2 设置停靠的位置
浮动窗⼝是位于中⼼部件的周围。可以通过 QDockWidget类 中提供 setAllowedAreas() 函数设置其 允许停靠的位置。其中可以设置允许停靠的位置有:
• Qt::LeftDockWidgetArea 停靠在左侧
• Qt::RightDockWidgetArea 停靠在右侧
• Qt::TopDockWidgetArea 停靠在顶部
• Qt::BottomDockWidgetArea 停靠在底部
• Qt::AllDockWidgetAreas 以上四个位置都可停靠
⽰例如下:设置浮动窗⼝只允许上下停靠

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDockWidget>
#include <QLabel>
#include <QPushButton>
#include <QVBoxLayout>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 给主窗口添加一个子窗口.QDockWidget* dockWidget = new QDockWidget();// 使用 addDockWidget 方法, 把浮动窗口加入到子窗口中this->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);// 浮动窗口也是可以设置标题的.dockWidget->setWindowTitle("这是浮动窗口");// 给浮动窗口内部, 添加一些其他的控件.// 不能直接给这个浮动窗口添加子控件, 而是需要创建出一个单独的 QWidget, 把要添加的控件加入到 QWidget 中.// 然后再把这个 QWidget 设置到 dockWidget 中.QWidget* container = new QWidget();dockWidget->setWidget(container);// 创建布局管理器, 把布局管理器设置到 QWidget 中QVBoxLayout* layout = new QVBoxLayout();container->setLayout(layout);// 创建其他控件添加到 layout 中.QLabel* label = new QLabel("这是一个 QLabel");QPushButton* button = new QPushButton("这是按钮");layout->addWidget(label);layout->addWidget(button);// 设置浮动窗口允许停靠的位置dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);}MainWindow::~MainWindow()
{delete ui;
}



浮动窗口=>子窗口
Qt 中使用 QDockWidget 来实现~~![]()
Qwidget* container = new QWidget();
dockWidget->setWidget(container;
由于 dockWidget 中只能包含一个QWidget.
要想添加更多的控件就只能往QWidget中进行添加了.(多套一层),
(为啥Qt要这么设定,也有点不可考)
按理说,直接让dockWidget能添加更多的元素是更合适的设定