Qt窗口——QDockWidget
文章目录
- 浮动窗口
- 浮动窗口使用示例
浮动窗口
QDockWidget
浮动窗口可以认为是子窗口,每一个子窗口都可以停靠在四周,像Qt Creator
页面,就很多的子窗口:
浮动窗口使用示例
创建:
QDockWidget* dockWidget = new QDockWidget();
this->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
设置窗口标题:
dockWidget->setWindowTitle("浮动窗口");
添加子控件:
不能直接给浮动窗口添加子控件,而是需要创建一个单独的QWidget
,把要添加的控件加入到QWidget
中,然后再把QWidget
设置到dockWidget
中。
Tips:
一个
dockWidget
里面只允许有一个QWidget
,要是想添加更多的控件,只能往QWidget
里添加
完整代码:
#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();this->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);//添加标题dockWidget->setWindowTitle("浮动窗口");//添加控件QWidget* container = new QWidget();dockWidget->setWidget(container); //创建布局管理器QVBoxLayout* layout = new QVBoxLayout;container->setLayout(layout);//创建其他控QLabel* label = new QLabel("Label_001");QPushButton* button = new QPushButton("button");layout->addWidget(label);layout->addWidget(button);}MainWindow::~MainWindow()
{delete ui;
}