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

embedded/2025/2/9 9:52:16/
  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目录

一、概述

二、使用场景

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.ppmy.cn/embedded/160774.html

相关文章

ubuntu 22.04 cuda12.x 上 cutensor 1.6.2 版本环境搭建

ubuntu 22.04 cuda12.x 运行 cutensor 1.6.2 sample 1.6.2 是比较久的cutensor 版本,但是nv对新的cuda 平台做了继续支持,故可以在cuda sdk 12上使用cutensor 1.6.2 1,下载libcutensor 1.6.2 下载 cutensor 1.6.2 for all Linux and all …

华为支付-免密支付接入签约代扣场景开发步骤

一、预签约(服务器开发) 1.开发者按照商户模型调用预直连商户预签约或服务商预签约接口获取preSignNo构建签约信息参数contractStr。 为保证支付订单的安全性和可靠性需要对请求body和请求头PayMercAuth对象内的入参排序拼接进行签名。请参考排序拼接和…

DeepSeek 提示词之角色扮演的使用技巧

老六哥的小提示:我们可能不会被AI轻易淘汰,但是会被“会使用AI的人”淘汰。 在DeepSeek的官方提示库中,有“角色扮演(自定义人设)”的提示词案例。截图如下: 在“角色扮演”的提示词案例中,其实…

【第一篇章】 C++ 初识

一、进门首先说 say hello 编写 helloworld.cpp 的文件&#xff0c;具体内容如下&#xff1a; #include <iostream> using namespace std; int main() {cout << "Hello, world!" << endl;return 0; }编译文件 g helloworld.cpp -o helloworld运…

python中的flask框架

Flask 是一个用Python编写的轻量级Web应用框架 基于WSGI和Jinja2模板引擎 被称为“微框架”&#xff0c;其核心功能简单&#xff0c;不捆绑数据库管理、表单验证等功能&#xff0c;而是通过扩展来增加其他功能 Flask提供最基本的功能&#xff0c;不强制使用特定工具或库 通…

认识网络安全

一 网络攻击链 踩点-工具准备-载荷投递-漏洞利用-释放载荷-建立通道-目标达成 简化下&#xff1a; 目标侦察&#xff1a;准确识别目标&#xff0c;收集目标详细信息&#xff0c;比如 网络、 邮箱、员工、社会关系、对外提供服务、漏洞 信息等&#xff0c;为 后续攻击做准备。…

Java实现状态模式

一、简介 1、定义 状态模式 (State Pattern)是一种行为型设计模式&#xff0c;允许对象在内部状态改变时改变它的行为。通过定义状态接口和具体状态类&#xff0c;将对象的状态和行为分开&#xff0c;使得状态改变时可以改变行为。 2、状态模式的结构 状态模式涉及以下几个角…

【C语言】C语言经典面试题详解

文章目录 引言1. 指针与数组1.1 指针与数组的区别1.2 指针数组与数组指针 2. 内存管理2.1 malloc与free2.2 内存泄漏与悬空指针 3. 函数指针3.1 函数指针的定义与使用3.2 回调函数 4. 结构体与联合体4.1 结构体的内存对齐4.2 联合体的使用场景4.3 位段 5. 预处理器与宏5.1 宏定…