《QT从基础到进阶·三十六》QWidget实现收缩栏的效果

news2024/11/16 13:26:49

功能:
1、可以在收缩栏插件中添加界面
2、可以把界面展开或收缩
3、可以用鼠标拖动界面改变界面的排放顺序

源码放在最下方

1、可以在收缩栏插件中添加界面

virtual void addWidget(QWidget* widget, const QString& label, const QIcon& icon = QIcon());

参数1:插入的界面指针
参数2:插入的界面标题
参数3:插入的界面图标

demo:
在收缩栏插件中添加两个界面

//创建收缩栏对象,这里是用插件形式读取CollpasePagePlugin.dll拿到QObject指针在强转为CollpasePagePlugin对象
//如果不清楚插件用法可以直接new一个CollpasePagePlugin对象
CollpasePagePlugin* collpasePagePlugin = PluginCore::getinstance()->GetPlugin<CollpasePagePlugin>("CollpasePagePlugin", "MTFTool");
if (collpasePagePlugin)
{
	
	collpasePagePlugin->GetWidget()->setParent(ui.groupBox);  //设置父窗体
	collpasePagePlugin->GetWidget()->setMouseTracking(true);  //设置鼠标追踪
	collpasePagePlugin->GetWidget()->parentWidget()->setMouseTracking(true);  //设置父窗体鼠标追踪
	collpasePagePlugin->SetLayout((QVBoxLayout*)ui.groupBox->layout(), -1);  //对收缩栏插件设置布局

	//创建一个widget
	m_MTFSetting = new MTFSetting(this);
	//把widget添加到收缩栏
	collpasePagePlugin->addWidget(m_MTFSetting, "MTFSetting", QIcon(":/Gen2WGMTFTester/images/MTF/MTFsetting.png"));
	
	//创建另一个widget
	m_ledWidget = new LEDControl(this);
	//把widget添加到收缩栏
	collpasePagePlugin->addWidget(ledPlugin->GetWidget(), "LEDControl", QIcon(":/Gen2WGMTFTester/images/MTF/LED.jpg"));
	
	//设置在程序运行后两个界面默认是收缩状态
	collpasePagePlugin->setItemExpand(0, false);
	collpasePagePlugin->setItemExpand(1, false);
}

在这里插入图片描述

2、界面展开或收缩
在这里插入图片描述

3、鼠标拖动界面移动和改变顺序
在这里插入图片描述
源码下载

在这里插入图片描述

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

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

相关文章

基于单片机加热炉多参数检测和PID炉温系统

**单片机设计介绍&#xff0c; 基于单片机加热炉多参数检测和PID炉温系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的公交安全预警系统可以被设计成能够实时监测公交车辆的行驶状态&#xff0c;并在发生异常情况…

华为云IoT与OpenHarmony深度协同,加速设备上鸿即上云【云驻共创】

本次专题论坛探讨了华为云IoT与Open Harmony的深度协同、边缘屏蔽硬件差异、实现智慧隧道全方位智能化管理&#xff0c;以及华为云与Open Harmony生态的合作。同时也介绍了华为云物联网卡平台、HTTP2协议以及华为物联网在交通领域的应用。 一&#xff0e;华为云IoT与Open Harm…

了解一下公网IP和域名的区别与联系

​  公网IP和域名是互联网中两个重要的概念&#xff0c;它们在网络通信和网站访问中起着不同的作用。 我们来了解一下公网IP。公网IP是指在全球范围内唯一的IP地址&#xff0c;用于标识互联网上的设备。每个设备连接到互联网时都会被分配一个公网IP地址&#xff0c;这个地址可…

手把手设计C语言版循环队列(力扣622:设计循环队列)

文章目录 前言描述分析力扣AC代码 力扣&#xff1a; 622.设计循环队列 前言 队列会出现“假溢出”现象&#xff0c;即队列的空间有限&#xff0c;队列是在头和尾进行操作的&#xff0c;当元素个数已经达到最大个数时&#xff0c;队尾已经在空间的最后面了&#xff0c;但是对头…

北邮22级信通院数电:Verilog-FPGA(0)怎么使用modelsim进行仿真?modelsim仿真教程一份请签收~

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 最近很多uu问我怎么用quartus连接的modelsim软件进…

【Ubuntu】Ubuntu arm64 部署 Blazor Server 应用

部署步骤 发布安装运行环境&#xff1a;dotnet-sdk&#xff08;必装&#xff09;、aspnetcore-runtime、dotnet-runtime安装证书设置环境变量&#xff1a;临时变量、当前用户永久变量、所有用户的永久变量运行&#xff1a;终端运行、后台运行 基本情况 开发系统环境 系统&am…

oepnpnp - 自己出图做开口扳手

文章目录 oepnpnp - 自己出图做开口扳手概述笔记做好的一套扳手实拍美图工程图END oepnpnp - 自己出图做开口扳手 概述 我的openpnp设备顶部相机安装支架, 由于结构限制, 螺柱的安装位置和机械挂壁的距离太近了. 导致拧紧(手工或者工具)很困难. 也不能重新做相机支架, 因为将…

Ubuntu22.04 交叉编译GCC13.2.0 for Rv1126

一、安装Ubuntu22.04 sudo apt install vim net-tools openssh-server 二、安装必要项 sudo apt update sudo apt upgrade sudo apt install build-essential gawk git texinfo bison flex 三、下载必备软件包 1.glibc https://ftp.gnu.org/gnu/glibc/glibc-2.38.tar.gz…

通明智云宣布完成数千万元A+轮融资, 引领云原生与信创两翼齐飞的应用交付解决方案

近日&#xff0c;通明智云&#xff08;北京&#xff09;科技有限公司&#xff08;简称&#xff1a;通明智云&#xff09;宣布完成数千万元A轮融资&#xff0c;由全聚合与信公投资联合投资&#xff0c;明论资本担任本轮融资独家财务顾问。本轮融资资金将主要用于NJet云原生应用引…

ky10 server x86 安装、更新openssl3.1.4(在线编译安装、离线安装)

查看openssl版本 openssl version 离线编译安装升级 #!/bin/shOPENSSLVER3.1.4OPENSSL_Vopenssl versionecho "当前OpenSSL 版本 ${OPENSSL_V}" #------------------------------------------------ #wget https://www.openssl.org/source/openssl-3.1.4.tar.gzech…

第四代可燃气体监测仪:可燃气体监测仪效果有哪些?

在城市之中一旦发生燃气事故&#xff0c;往往会为社会公共安全和公众利益带来极大的危害&#xff0c;扰乱社会运行的稳定秩序&#xff0c;威胁着城市生命线的运行。因此对于城市燃气事故的预防和应对工作&#xff0c;必须得到充分的重视和关注。城市燃气事故的预防工作&#xf…

redis高可用---持久化

redis高可用 在集群当中有一个非常重要的指标&#xff0c;提供正常服务的时间的百分比(365天) 99.9%&#xff0c;redis高可用含义更广泛&#xff0c;支持服务是指标之一&#xff0c;数据容量扩展&#xff0c;数局的安全性。&#xff08;容量、安全性&#xff09; redis中实现高…

竞赛 题目:基于深度学习的手势识别实现

文章目录 1 前言2 项目背景3 任务描述4 环境搭配5 项目实现5.1 准备数据5.2 构建网络5.3 开始训练5.4 模型评估 6 识别效果7 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的手势识别实现 该项目较为新颖&#xff0c;适合作为竞赛课题…

【设计模式】行为型设计模式

行为型设计模式 文章目录 行为型设计模式一、概述二、责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;三、命令模式&#xff08;Command Pattern&#xff09;四、解释器模式&#xff08;Interpreter Pattern&#xff09;五、迭代器模式&#xff08;Iterato…

YOLOV5 C++部署的人员检测项目【学习笔记(十一)】

本文为修改后的转载&#xff0c;没有转载链接&#xff0c;所以文章类型暂为原创 文章目录 一、安装Pytorch 及 YOLO v51.1 安装GPU版 pytorch1.2 安装YOLO v5所需依赖 二、YOLO v5训练自定义数据2.1 标注数据2.1.1 安装labelImg2.1.2 标注 2.2 准备数据集2.2.1 组织目录结构2.…

亚马逊运营一定要用动/静态住宅IP代理吗?

作为全球最大的电商平台之一&#xff0c;亚马逊已经成为许多商家的首选销售平台。而代理IP作为近几天互联网的热门工具&#xff0c;在跨境电商界也起着非常强大的作用。那么在亚马逊运营中&#xff0c;适合动态住宅代理还是静态住宅代理呢&#xff1f;下面我们一起来探索&#…

问题解决:ModuleNotFoundError: No module named ‘skimage‘

今天的代码中需要用到这个库 from skimage.morphology import disk import skimage.filters.rank as sfr 在运行程序时&#xff0c;出现报错&#xff1a; ModuleNotFoundError: No module named skimage 刚开始傻乎乎的使用 pip install skimage 指令&#xff0c;结果确实不…

深入了解Java 8 新特性:Stream流的实践应用(二)

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概8000多字&#xff0c;预计阅读时间长需要10分钟&#xff08;不要害怕字数过多&#xff0c;其中有一大部分是示例代码&#xff0c;读起…

HTML5+CSS3+JS小实例:Canvas图片滑块拖动验证码

实例:Canvas图片滑块拖动验证码 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" cont…

二十一、数组(3)

本章概要 Arrays的setAll方法增量生成 Arrays的setAll方法 在Java 8中&#xff0c; 在RaggedArray.java 中引入并在 ArrayOfGenerics.java.Array.setAll() 中重用。它使用一个生成器并生成不同的值&#xff0c;可以选择基于数组的索引元素&#xff08;通过访问当前索引&…