目錄
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能添加更多的元素是更合適的設定