Windows图形界面(GUI)-QT-C/C++ - QT Dock Widget

news/2025/2/6 9:55:30 标签: qt, c++, 开发语言, windows, c语言
  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

一、概述

二、使用场景

1. 工具栏

2. 侧边栏

3. 调试窗口

三、常见样式

1. 停靠位置

2. 浮动窗口

3. 可关闭

4. 可移动

四、属性设置

1. 设置内容

2. 获取内容

3. 设置标题

4. 获取标题

5. 设置特性

6. 获取特性

7. 设置可停靠区域

8. 获取可停靠区域

五、信号与槽

1. 浮动状态改变信号

2. 可停靠区域改变信号

3. 特性改变信号


一、概述

QDockWidget 是 Qt 框架中用于创建可停靠窗口的组件。它允许用户在主窗口的四周(顶部、底部、左侧、右侧)停靠或浮动显示一个独立的窗口。QDockWidget 广泛应用于工具栏、侧边栏、调试窗口等场景,为用户提供灵活的界面布局和操作体验。


二、使用场景

1. 工具栏

QDockWidget 可以用作工具栏,例如文件浏览器、属性编辑器等。用户可以根据需要将工具栏停靠在主窗口的任意一侧,或将其浮动为独立窗口。

2. 侧边栏

在复杂的应用程序中,侧边栏通常用于显示项目视图、导航面板等内容。QDockWidget 可以方便地实现侧边栏的停靠和浮动功能。

3. 调试窗口

在开发或调试过程中,调试窗口(如变量查看器、日志输出等)是必不可少的工具。QDockWidget 可以将调试窗口停靠在主窗口的任意位置,方便开发者查看和操作。


三、常见样式

1. 停靠位置

QDockWidget 可以停靠在主窗口的四个区域:

  • 顶部Qt::TopDockWidgetArea

  • 底部Qt::BottomDockWidgetArea

  • 左侧Qt::LeftDockWidgetArea

  • 右侧Qt::RightDockWidgetArea

2. 浮动窗口

QDockWidget 可以作为独立的窗口浮动在主窗口之外,用户可以通过拖动标题栏将其移动到任意位置。

3. 可关闭

QDockWidget 可以设置为可关闭,用户可以通过关闭按钮关闭停靠窗口。

4. 可移动

用户可以通过拖动标题栏来移动停靠窗口,调整其位置或将其停靠到其他区域。


四、属性设置

QDockWidget 提供了丰富的属性设置方法,开发者可以通过这些方法灵活地配置停靠窗口的行为和外观。

1. 设置内容

QTextEdit *textEdit = new QTextEdit;
dockWidget->setWidget(textEdit);

2. 获取内容

QWidget *widget = dockWidget->widget();

3. 设置标题

dockWidget->setWindowTitle("Dock Widget");

4. 获取标题

QString title = dockWidget->windowTitle();

5. 设置特性

dockWidget->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable);

6. 获取特性

QDockWidget::DockWidgetFeatures features = dockWidget->features();

7. 设置可停靠区域

dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

8. 获取可停靠区域

Qt::DockWidgetAreas areas = dockWidget->allowedAreas();

五、信号与槽

1. 浮动状态改变信号

connect(dockWidget, &QDockWidget::topLevelChanged, this, &MyClass::onTopLevelChanged);

2. 可停靠区域改变信号

connect(dockWidget, &QDockWidget::allowedAreasChanged, this, &MyClass::onAllowedAreasChanged);

3. 特性改变信号

connect(dockWidget, &QDockWidget::featuresChanged, this, &MyClass::onFeaturesChanged);

http://www.niftyadmin.cn/n/5842852.html

相关文章

PyQt6/PySide6 的 QDialog 类

QDialog 是 PyQt6 或 PySide6 库中用于创建对话框的类。对话框是一种特殊的窗口,通常用于与用户进行短期交互,如输入信息、显示消息或选择选项等。QDialog 提供了丰富的功能和灵活性,使得开发者可以轻松地创建各种类型的对话框。下面我将详细…

基于PostGIS的省域空间相邻检索实践

目录 前言 一、相关空间检索函数 1、ST_touches函数 2、ST_Intersects函数 3、ST_Relate函数 4、区别于对比 二、空间相邻检索实践 1、省域表相关介绍 2、相关省域相邻查询 3、全国各省份邻居排名 三、总结 前言 在当今数字化时代,地理空间数据的高效管理…

论文解读:《基于TinyML毫米波雷达的座舱检测、定位与分类》

摘要 本文提出了一种实时的座舱检测、定位和分类解决方案,采用毫米波(mmWave)雷达系统芯片(SoC),CapterahCAL60S344-AE,支持微型机器学习(TinyML)。提出了波束距离-多普勒…

计算机网络之计算机网络分层结构

一、分层结构概述 计算机网络分层结构将网络通信过程划分为多个层次,每个层次都负责完成特定的任务和功能。这些层次之间通过接口进行通信,上层使用下层提供的服务,并向其上层提供服务。分层结构的设计使得网络通信过程更加模块化和易于管理…

潮汐发电机使用MTi运动传感器在快速水流中保持稳定位置

开发可再生能源是应对气候危机的重要措施。太阳能和风能是可再生能源领域的巨头,但它们的产量是不可预测的,而且是间歇性的。我们很难可靠地预测风力有多强或阳光有多亮。这是国家电网运营商面临的一个问题,他们负责动态平衡能源供应和负载。…

OpenCV YOLOv11实时视频车辆计数线:让车辆进出有条理!

前言 大家好!今天我们聊个超级有趣的课题——如何用OpenCV结合YOLOv11进行实时视频车辆计数。是不是很炫酷?车辆进出全都清晰可见,连“跑车”都能精确统计!不过,别急,这可不仅仅是数车那么简单,背后还有许多实际问题等着你去搞定,比如计数线、车速、误检这些麻烦的小问…

【大模型】AI 辅助编程操作实战使用详解

目录 一、前言 二、AI 编程介绍 2.1 AI 编程是什么 2.1.1 为什么需要AI辅助编程 2.2 AI 编程主要特点 2.3 AI编程底层核心技术 2.4 AI 编程核心应用场景 三、AI 代码辅助编程解决方案 3.1 AI 大模型平台 3.1.1 AI大模型平台代码生成优缺点 3.2 AI 编码插件 3.3 AI 编…

【数据结构与算法】二叉搜索树插入/查询的应用

​ 导语 在上周的文章中,我们了解了二叉搜索树这一强大的数据结构: 数据结构与算法-二叉搜索树的定义和插入实现 上次,我们已经实现了插入节点的功能 要想具体应用到算法的整体设计中,我们还需要根据运用场景进行改动 让我们…