qt QDockWidget详解

news2024/11/14 4:25:20
1、概述

QDockWidget是Qt框架中的一个窗口部件,它提供了一个可停靠的面板,该面板可用于显示和编辑各种内容。QDockWidget可以在主窗口中创建并停靠在不同的位置,如左侧、右侧、顶部或底部。此外,QDockWidget还具备浮动功能,可以通过拖动和放置的方式来改变其位置和大小,甚至将其拖动到主窗口之外,使其成为一个独立的浮动窗口。QDockWidget还可以嵌套在另一个QDockWidget内部,创建一个多级的停靠窗口布局。

2、重要方法
  • QDockWidget():构造函数,用于创建一个QDockWidget对象。可以指定窗口的标题、父部件和窗口标识符等参数。
  • setAllowedAreas():设置QDockWidget可以停靠的区域。可以指定一个或多个停靠区域,如左侧、右侧、顶部或底部等。
  • setFeatures():设置QDockWidget的功能标志。可以指定停靠窗体是否可关闭、可移动、可浮动等特性。
  • setFloating():设置QDockWidget是否被浮动(未停靠)。如果设置为true,则QDockWidget将成为一个浮动窗口。
  • setWidget():将给定的QWidget对象设置为QDockWidget的子部件。这个子部件将显示在QDockWidget的内容区域中。
  • toggleViewAction():返回一个QAction对象,该对象可用于切换QDockWidget的可见性。将这个QAction对象添加到菜单或工具栏中,用户就可以通过点击来显示或隐藏QDockWidget。
3、重要信号
  • allowedAreasChanged:当QDockWidget的允许停靠区域发生变化时发出。
  • featuresChanged:当QDockWidget的功能标志发生变化时发出。
  • topLevelChanged:当QDockWidget的浮动状态发生变化时发出(即从停靠状态变为浮动状态,或从浮动状态变为停靠状态)。
  • dockLocationChanged:当QDockWidget的停靠位置因手工拖拽或代码执行导致停靠位置发生变化时发出。
  • visibilityChanged:当QDockWidget的可见状态发生变化时发出,包括显示或隐藏窗口。
4、常用枚举类型
  • DockWidgetFeatures:这是一个枚举类型,用于指定QDockWidget的功能标志。常用的标志包括DockWidgetClosable(可关闭)、DockWidgetMovable(可移动)、DockWidgetFloatable(可浮动)等。可以使用“|”运算符将这些标志组合起来,以赋予QDockWidget多个特性。
#include <QApplication>
#include <QMainWindow>
#include <QDockWidget>
#include <QTextEdit>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QMainWindow mainWindow;
    mainWindow.setWindowTitle("QDockWidget Example");

    // 创建一个QTextEdit作为主窗口的中央部件
    QTextEdit *centralWidget = new QTextEdit(&mainWindow);
    centralWidget->setText("Central Widget");
    mainWindow.setCentralWidget(centralWidget);

    // 创建一个QDockWidget并设置其属性
    QDockWidget *dockWidget = new QDockWidget("Dockable", &mainWindow);
    dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
    dockWidget->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);

    // 创建一个QTextEdit作为QDockWidget的内容部件
    QTextEdit *dockWidgetContent = new QTextEdit(dockWidget);
    dockWidgetContent->setText("Dock Widget Content");
    dockWidget->setWidget(dockWidgetContent);

    // 将QDockWidget添加到主窗口中
    mainWindow.addDockWidget(Qt::LeftDockWidgetArea, dockWidget);

    mainWindow.show();
    return app.exec();
}

技术交流qq群:

觉得有帮助的话,打赏一下呗。。

           

需要商务合作(定制程序)的欢迎私信!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2239906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 开发指南:初学者入门

Android 是全球最受欢迎的移动操作系统之一&#xff0c;为开发者提供了丰富的工具和资源来创建各种类型的应用程序。本文将为你提供一个全面的入门指南&#xff0c;帮助你从零开始学习 Android 开发。 目录 1. 了解 Android 平台[1]2. 设置开发环境[2]3. 学习基础知识[3]4. 创…

每日小练:Day2

1.乒乓球筐 题目链接&#xff1a;乒乓球筐__牛客网 题目描述&#xff1a; 这道题主要考察B盒是不是A盒的子集&#xff0c;我们可以通过哈希表来做 单哈希表 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public stat…

Java反序列化之CommonsCollections4、5、7 链的学习

一、前言 前面的文章中&#xff0c;基本把CC链的关键部分学习的差不多了&#xff0c;利用过程也是比较清晰了&#xff0c;接下来把 CommonsCollections 4、5、7 利用链学习下&#xff0c;扩展下思路 二、CommonsCollections4 利用链的学习 运行环境&#xff1a; java 1.8.0_71…

A030-基于Spring boot的公司资产网站设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…

qt QVideoWidget详解

1. 概述 QVideoWidget是Qt框架中用于视频播放的控件。它继承自QWidget&#xff0c;并提供了与QMediaPlayer等多媒体播放类集成的功能。QVideoWidget可以嵌入到Qt应用程序的用户界面中&#xff0c;用于显示视频内容。它支持多种视频格式&#xff0c;并提供了基本的视频播放控制…

PG逻辑复制的REPLICA IDENTITY几种设置

前两天同事问了一个PG的错误&#xff0c;创建一张普通表&#xff0c;insert插入正常&#xff0c;但是执行update和delete时&#xff0c;提示这个错误&#xff0c; 代码语言&#xff1a;javascript 复制 SQL 错误 [55000]: ERROR: cannot delete from table "temp_tb&qu…

Flutter 小技巧之 Shader 实现酷炫的粒子动画

在之前的《不一样的思路实现炫酷 3D 翻页折叠动画》我们其实介绍过&#xff1a;如何使用 Shader 去实现一个 3D 的翻页效果&#xff0c;具体就是使用 Flutter 在 3.7 开始提供 Fragment Shader API &#xff0c;因为每个像素都会过 Fragment Shader &#xff0c;所以我们可以通…

<项目代码>YOLOv7 草莓叶片病害识别<目标检测>

YOLOv7是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一个回归问题&#xff0c;能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法&#xff08;如Faster R-CNN&#xff09;&#xff0c;YOLOv7具有更高的…

一文读懂什么是RAG?附MindSpore和MindNLP实现的TinyRAG框架

什么是RAG&#xff1f; 首先我们给出RAG的定义&#xff1a;RAG&#xff08;Retrieval-Augmented Generation&#xff09;技术是一种结合了信息检索&#xff08;Retrieval&#xff09;和生成式模型&#xff08;Generation&#xff09;的人工智能方法。对于用户的Query&#xff…

字节、快手、Vidu“打野”升级,AI视频小步快跑

文&#xff5c;白 鸽 编&#xff5c;王一粟 继9月份版本更新之后&#xff0c;光锥智能从生数科技联合创始人兼CEO唐家渝朋友圈获悉&#xff0c;Vidu大模型将于本周再次进行版本升级&#xff0c;Vidu-1.5版本即将上线。 此版本更新方向仍是重点延伸大模型的泛化能力和主体…

matlab建模入门指导

本文以水池中鸡蛋温度随时间的变化为切入点&#xff0c;对其进行数学建模并进行MATLAB求解&#xff0c;以更为通俗地进行数学建模问题入门指导。 一、问题简述 一个煮熟的鸡蛋有98摄氏度&#xff0c;将它放在18摄氏度的水池中&#xff0c;五分钟后鸡蛋的温度为38摄氏度&#x…

React Query在现代前端开发中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 React Query在现代前端开发中的应用 React Query在现代前端开发中的应用 React Query在现代前端开发中的应用 引言 React Query …

汇总常用的114款AI视频创作工具,堪称运营神器,收藏备用!

随着AI工具的使用起来起广泛&#xff0c;国内各个互联网大厂都开始在圈内出围。过去我们写文案、做视频、拍视频、剪辑视频、画漫画、处理图片等&#xff0c;都需要手工一点一点地精雕细琢。现在通过AI工具&#xff0c;零基础也能做出很多精致的作品。 前面我在上个月的28号分…

在vue中,完成@wangeditor/editor组件的大数据量加载,解决卡顿

背景 简单说一下需求&#xff0c;一个页面中只存在一个Editor组件&#xff0c;但是需要通过选择不同类型展示不同的content的数据&#xff0c;不过直接通过提供的Editor组件加载的时候&#xff0c;在数据量大&#xff08;测试数据226KB&#xff09;的情况下&#xff0c; 切换类…

通义千问API调用测试 (colab-python,vue)

文章目录 代码&#xff08;来自官网&#xff09;colab中用python测试Qwen2.5在官网上查看并确定过期时间这里看到我的免费额度到25年5月在同一个页面&#xff0c;点击API示例 前端调用直接在前端调用的优缺点以vue为例&#xff08;代码是基于官网node.js的代码转换而来&#xf…

使用 Elasticsearch 构建食谱搜索(一)

作者&#xff1a;来自 Elastic Andre Luiz 了解如何使用 Elasticsearch 构建基于语义搜索的食谱搜索。 简介 许多电子商务网站都希望增强其食谱搜索体验。正确使用语义搜索可以让客户根据更自然的查询&#xff08;例如 “something for Valentines Day - 情人节的礼物” 或 “…

微服务各组件整合

nacos 第一步&#xff0c;引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency> 第二步&#xff0c;增加配置 spring:application:name: …

【大数据学习 | HBASE高级】hive操作hbase

一般在查询hbase的数据的时候我们可以直接使用hbase的命令行或者是api进行查询就行了&#xff0c;但是在日常的计算过程中我们一般都不是为了查询&#xff0c;都是在查询的基础上进行二次计算&#xff0c;所以使用hbase的命令是没有办法进行数据计算的&#xff0c;并且对于hbas…

modbus协议 Mthings模拟器使用

进制转换 HEX 16进制 (0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F表示0-15) dec 10进制 n(16进制) -> 10 abcd.efg(n) d*n^0 c*n^1 b*n^2 a*n^3 e*n^-1 f*n^-2 g*n^-3&#xff08;10&#xff09; 10 -> n(16进制) Modbus基础概念 高位为NUM_H&…

列表(list)

一、前言 本次博客主要讲解 list 容器的基本操作、常用接口做一个系统的整理&#xff0c;结合具体案例熟悉自定义内部排序方法的使用。如有任何错误&#xff0c;欢迎在评论区指出&#xff0c;我会积极改正。 二、什么是list list是C的一个序列容器&#xff0c;插入和删除元素…