文章目录
- 浮动窗口
- 浮动窗口使用示例
浮动窗口
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;
}