- 博客主页:Duck Bro 博客主页
- 系列专栏:Qt 专栏
- 关注博主,后期持续更新系列文章
- 如果有错误感谢请大家批评指出,及时修改
- 感谢大家点赞👍收藏⭐评论✍
Qt窗口 | 浮动窗口 | QDockWidget的使用及说明
文章编号:Qt 学习笔记 / 50
文章目录
- Qt窗口 | 浮动窗口 | QDockWidget的使用及说明
- 一、浮动窗口
- 1. 什么是浮动窗口
- 二、QDockWidget介绍
- 1. 简介
- 2. 常用属性
- 3. 常用方法
- 三、代码创建浮动窗口
- 1. 创建浮动窗口
- 2. 设置浮动窗口允许停靠的位置
一、浮动窗口
1. 什么是浮动窗口
浮动窗口是计算机图形界面中一种常见的窗口类型,它可以悬浮在其他窗口之上并且可以自由移动。浮动窗口通常被用于显示一些特定的信息或功能,例如实时监测数据、通知消息、弹出菜单等。浮动窗口可以在屏幕上的任何位置出现,用户可以根据需要将其拖动到合适的位置。
二、QDockWidget介绍
1. 简介
QDockWidget是Qt中的一个窗口部件,它提供了一个可停靠的面板,可用于显示和编辑各种内容。
QDockWidget可以在主窗口中创建并停靠在不同的位置,如左侧、右侧、顶部或底部。它可以通过拖动和放置的方式来改变其位置和大小。QDockWidget还可以嵌套在另一个QDockWidget内部,创建一个多级的停靠窗口布局。
2. 常用属性
titleBarWidget | 设置自定义的标题栏部件 |
features | 设置停靠窗口的功能, 可以使用QDockWidget的DockWidgetFeature枚举值 - DockWidgetClosable - DockWidgetMovable - DockWidgetFloatable |
allowedAreas | 设置停靠窗口可以停靠的区域 可以使用Qt::DockWidgetArea枚举值 - LeftDockWidgetArea - RightDockWidgetArea - TopDockWidgetArea - BottomDockWidgetArea |
floating | 设置停靠窗口是否以浮动窗口的方式显示 |
widget | 设置停靠窗口中要显示的内容部件 |
objectName | 为停靠窗口设置唯一的对象名称,用于在代码中引用和操作该窗口 |
3. 常用方法
方法 | 说明 |
---|---|
setWidget(QWidget *widget) | 设置QDockWidget的内容部件 |
widget() | 获取QDockWidget的内容部件 |
setTitleBarWidget(QWidget *widget) | 设置QDockWidget的标题栏部件 |
titleBarWidget() | 获取QDockWidget的标题栏部件 |
setAllowedAreas(Qt::DockWidgetAreas areas) | 设置QDockWidget允许停靠的区域 |
allowedAreas() | 获取QDockWidget允许停靠的区域 |
setFloating(bool floating) | 设置QDockWidget是否浮动 |
isFloating() | 判断QDockWidget是否浮动 |
setMinimumSize(const QSize &size) | 设置QDockWidget的最小尺寸 |
setMaximumSize(const QSize &size) | 设置QDockWidget的最大尺寸 |
minimumSize() | 获取QDockWidget的最小尺寸 |
maximumSize() | 获取QDockWidget的最大尺寸 |
setWindowTitle(const QString &title) | 设置QDockWidget的窗口标题 |
windowTitle() | 获取QDockWidget的窗口标题 |
三、代码创建浮动窗口
1. 创建浮动窗口
浮动窗⼝的创建是通过 QDockWidget类 提供的构造⽅法 QDockWidget()函数 动态创建的
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDockWidget>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//创建浮动窗口
QDockWidget* dockwidget = new QDockWidget();
//使用 addDockWidget 方法, 把浮动窗口加入到子窗口中
this->addDockWidget(Qt::BottomDockWidgetArea,dockwidget);
//设置窗口标题
dockwidget->setWindowTitle("浮动窗口");
}
MainWindow::~MainWindow()
{
delete ui;
}
运行代码,中间的窗口就是浮动窗口
2. 设置浮动窗口允许停靠的位置
浮动窗⼝是位于中⼼部件的周围。可以通过 QDockWidget类 中提供 setAllowedAreas() 函数设置其
允许停靠的位置。
其中可以设置允许停靠的位置有:
• Qt::LeftDockWidgetArea 停靠在左侧
• Qt::RightDockWidgetArea 停靠在右侧
• Qt::TopDockWidgetArea 停靠在顶部
• Qt::BottomDockWidgetArea 停靠在底部
• Qt::AllDockWidgetAreas 以上四个位置都可停靠
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDockWidget>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//创建浮动窗口
QDockWidget* dockwidget = new QDockWidget();
//使用 addDockWidget 方法, 把浮动窗口加入到子窗口中
this->addDockWidget(Qt::BottomDockWidgetArea,dockwidget);
//设置窗口标题
dockwidget->setWindowTitle("浮动窗口");
//设置窗口只允许左和上停靠
dockwidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea);
}
MainWindow::~MainWindow()
{
delete ui;
}
运行代码,浮动窗口只能在左和上边停靠