当前位置: 首页 > article >正文

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

  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

一、概述

二、使用场景

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.kler.cn/a/534567.html

相关文章:

  • docker安装es及分词器ik
  • Linux 安装 RabbitMQ
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter3-语言基础
  • 深入解析:Python 爬虫高级技巧与实战应用
  • Ubuntu下Tkinter绑定数字小键盘上的回车键(PySide6类似)
  • 计算机基础知识(第二篇)
  • 【12】深入理解Golang值传递与引用传递:避坑指南与性能优化
  • 前端学习数据库知识
  • React组件中的列表渲染与分隔符处理技巧
  • YOLOv11实时目标检测 | 摄像头视频图片文件检测
  • ZZNUOJ(C/C++)基础练习1061——1070(详解版)
  • 《redis的pub/sub机制》
  • Vue 3 中的 el-tooltip 详解:语法、示例及与其他框架对比
  • 谈谈对IOC的理解
  • 反向代理模块anns
  • 笔记:新能源汽车零部件功率级测试怎么进行?
  • 文心一言指令词宝典之职场效率篇
  • Java 大视界 -- Java 大数据在智慧文旅中的应用与体验优化(74)
  • 快速幂,错位排序笔记
  • 【字节青训营-6】:Gorm的基础使用
  • DeepSeek与llama本地部署(含WebUI)
  • ESXI虚拟机中部署docker会降低服务器性能
  • C# 压缩图片并保存到本地
  • Android性能优化系列——卡顿优化
  • 【C++】指针的基础概念与应用解析
  • tkvue 入门,像写html一样写tkinter