《QT从基础到进阶·三十五》QT插件实现侧边工具栏tabBar

tabBar是用QT插件实现的一个dll,对于插件的使用可以参考文章:
《QT从基础到进阶·三十三》QT插件开发QtPlugin

源码放在文章末尾

该功能类似侧边工具栏,可以在该标签栏上添加自己开发的界面,实现代码如下:
1、所有功能统一由TabBarPlugin类管理,现在主界面mainWindow插入标签栏tabBar:

 TabBarPlugin* tabBarPlugin = PluginCore::getinstance()->GetPlugin<TabBarPlugin>("TabBarPlugin");if (tabBarPlugin)ui.centralWidget->layout()->addWidget(tabBarPlugin->getWidget());

注意:后面PluginCore::getinstance()->GetPlugin(“TabBarPlugin”);内部先拿到TabBar的dll转为QObject,再把QObject强转为TabBarPlugin对象,这是插件的使用方法,也可以直接new一个TabBarPlugin对象。
在这里插入图片描述

2、现在有四个小工具界面想要放入tabBar标签栏:

 LevelAdjustPlugin* levelAdjustPlugin = PluginCore::getinstance()->GetPlugin<LevelAdjustPlugin>("LevelAdjustPlugin");if (levelAdjustPlugin && tabBarPlugin)tabBarPlugin->addWidget(levelAdjustPlugin->GetWidget(), "LevelAdjust", QIcon());MLMotion2D* tipTiltPlugin = PluginCore::getinstance()->GetPlugin<MLMotion2D>("TipTiltPlugin");if (tipTiltPlugin && tabBarPlugin)tabBarPlugin->addWidget(tipTiltPlugin->GetWidget(), "TipTilt", QIcon());CollimatorPlugin* collPlugin = PluginCore::getinstance()->GetPlugin<CollimatorPlugin>("CollimatorPlugin");if (collPlugin && tabBarPlugin)tabBarPlugin->addWidget(collPlugin->GetWidget(), "Collimator", QIcon());GradienterPlugin* gradPlugin = PluginCore::getinstance()->GetPlugin<GradienterPlugin>("GradienterPlugin");if (gradPlugin && tabBarPlugin)tabBarPlugin->addWidget(gradPlugin->GetWidget(), "Gradienter", QIcon());

四个小工具也是由插件实现,先拿到他们的对象,通过对象指针获取他们的界面,再把每个界面addWidget添加到标签栏中。
在这里插入图片描述

3、现在可以对标签栏上的所有界面进行交互
(1)可以收缩和展开tabBar
在这里插入图片描述

(2)调换tabBar标签栏中所有界面的循序和删除小工具界面
在这里插入图片描述
(3)把tabBar标签栏中的小工具界面拖出来在放回去
在这里插入图片描述

源码下载

在这里插入图片描述

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

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

相关文章

Tomcat无法映射到activiti-app导致activiti无法启动页面

原因之一&#xff1a;JDK版本与Tomcat版本不匹配&#xff0c;jdk8 yyds 我使用的是JDK11&#xff0c;Tomcat是9.0的&#xff0c;都是最新的&#xff0c;但还是不行&#xff0c;最后JDK改为8&#xff0c;tomcat的cmd后台没有报错&#xff0c;activiti-pp也可以正常访问了,很神奇…

Linux输入设备应用编程(键盘,按键,触摸屏,鼠标)

目录 一 输入设备编程介绍 1.1 什么是输入设备呢&#xff1f; 1.2 什么是输入设备的应用编程&#xff1f; 1.3 input子系统 1.4 数据读取流程 1.5 应用程序如何解析数据 1.5.1 按键类事件&#xff1a; 1.5.2 相对位移事件 1.5.3 绝对位移事件 二 读取 struct input_e…

ATFX汇市:欧元区10月CPI年率终值不变,EURUSD逼近1.1000心理关口

ATFX汇市&#xff1a;据欧盟统计局11月17日发布的数据&#xff0c;欧元区10月名义CPI年率终值2.9%&#xff0c;与10月末公布的初值持平。欧央行对通胀率的长期调控目标为2%左右&#xff0c;10月份名义CPI年率已经非常接近目标范围&#xff0c;欧央行继续加息的紧迫性降低。10月…

【AI视野·今日Robot 机器人论文速览 第六十二期】Wed, 25 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Wed, 25 Oct 2023 Totally 25 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers EquivAct: SIM(3)-Equivariant Visuomotor Policies beyond Rigid Object Manipulation Authors Jingyun Yang, Congyue Deng,…

OD机考真题搜集:不开心的小朋友

题目 游乐场里增加了一批摇摇车,非常受小朋友欢迎,但是每辆摇摇车同时只能有一个小朋友使用,如果没有空余的摇摇车,需要排队等候,或者直接离开,最后没有玩上的小朋友会非常不开心。请根据今天小朋友的来去情况,统计不开心的小朋友数量。 1.摇摇车数量为N,范围是:1≤N&…

Java的IO流-转换流

乱码问题 package com.itheima.d2;import java.io.*; import java.nio.charset.StandardCharsets;public class Test4 {public static void main(String[] args) {try (//1、创建一个文件字符输入流与源文件接通//Reader fr new FileReader("IO\\src\\itheima04.txt"…

Git企业开发级讲解(四)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、理解分⽀二、创建分支三、切换分⽀四、合并分⽀五、删除分⽀六、合并冲突七、分⽀管理策略…

【Leetcode合集】1. 两数之和

1. 两数之和 1. 两数之和 代码仓库地址&#xff1a; https://github.com/slience-me/Leetcode 个人博客 &#xff1a;https://slienceme.xyz 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并…

三、机器学习基础知识:Python常用机器学习库(图像处理相关库)

文章目录 1、OpenCV1.1 窗口操作函数1.2 图像处理1.3 图像捕获与人脸检测 2、PIL2.1 主要函数2.2 表情图像合成2.3 手写数字转换2.4 滤波查找图像边缘 1、OpenCV OpenCV Python是一个用于解决计算机视觉问题的Python库&#xff0c;是用基于C实现的OpenCV构成的Python包。OpenC…

UE基础篇十:材质

导语: 视频文档在文末 虚幻引擎默认是延迟渲染(延迟渲染是通过先算出需要着色的像素,然后再迭代灯光,从而减少大量无效的灯光计算,来达到优化的目的) 一、基础知识 1.1 贴图分辨率尺寸 2的幂次方,长宽随意组合 非2的幂次方,不能设置MipMaps(引擎会生成多张分辨率更…

搜维尔科技:业内普遍选择Varjo头显作为医疗VR/AR/XR解决方案

Varjo 的人眼分辨率混合现实和虚拟现实头显将医疗专业人员的注意力和情感投入提升到更高水平。借助逼真的 XR/VR&#xff0c;医疗和保健人员可以为最具挑战性的现实场景做好准备&#xff01; 在虚拟、增强和混合现实中进行最高水平的训练和表现 以逼真的 3D 方式可视化医疗数据…

C++ DAY06 c++多态

简介 一个事物的多种形态 , 简称多态 物的多态 同一个人在不同人面前展现是不同的 如 : 在我面前 在对象面前 在朋友面前 在父母面前 事的多态 吃饭 中国人 筷子 熟食 美国人 刀叉 7 分熟 日本人 筷子 生食 印度人 手 睡觉 中国人 床上 日本人 榻榻米 侧卧 平躺…

参数估计(一)(点估计)

文章目录 点估计和估计量的求法点估计概念矩估计法极大似然估计法 参考文献 参数估计是数理统计中重要的基本问题之一。通常&#xff0c;称参数的可容许值的全体为参数空间&#xff0c;并记为 Θ \Theta Θ。所谓参数估计就是由样本对总体分布所含的未知参数做出估计。另外&am…

个人博客汇总

博客汇总 建设完成的博客建设中的博客规划建设的博客看过但是暂时不会整理的博客 建设完成的博客 建设中的博客 集体智慧编程 redis设计与实现 GRPC 规划建设的博客 书籍类 DDIA 技术方案 活动增长裂变增长裂变人群打标 看过但是暂时不会整理的博客 刑法学讲义蛤蟆先生去…

MyBatis 操作数据库(构造动态 SQL)

前言 动态 SQL 是 Mybatis 的强⼤特性之⼀&#xff0c;能够完成不同条件下不同的 sql 拼接。 <if> 标签 我们在填写用户信息的时候经常会看到如下的界面&#xff0c;用户信息中包含必填信息和非必填信息&#xff0c;非必填信息是填和不填都可以的&#xff0c;那这样的话…

基本算法:二分

文章目录 1、整数集合上的二分2、实数域上的二分3、三分求单峰函数极值4、二分答案转化为判定二分的基础用法是在单调序列或单调函数中进行查找。因此,当问题的答案具有单调性时,就可以通过二分把求解转化为判定(根据复杂度理论,判定的难度小于求解),这使得二分的运用范围…

IDEA常用插件合集

功能类&#xff1a; 1、Background Image Plus 换壁纸 2、Chinese(Simplified)... 中文语言包 3、Translation 代码翻译 4、Key Promoter X 快捷键提示插件 5、Rainbow bracket 彩虹括号插件&#xff0c;对于多组括号使用不同的颜色标注 6、Code Glance 代码小地图&a…

参加了南京 GDG 活动:这些精彩的技术讨论,值得与你分享~

一直以来发的文章大都是技术的&#xff0c;这次和大家聊点简单点的。 密集输出这几年&#xff0c;因为疫情没能在线下和大家碰面&#xff0c;去年又因为时间原因浪费了 Google IO China 门票。所以&#xff0c;今年的南京本地的 GDG DevFest 2023 活动一经上线&#xff0c;就报…

国际物流社交销售玩法拆解(三):打造社交电商式分销增长

这一篇&#xff0c;是国际物流行业社交销售玩法最后一篇&#xff0c;也是国际物流企业实现业务经营新增长、打造分销增长体系的新模式。以下&#xff0c;我们一起来拆解这一模式具体内容吧。 #01 国际物流第二曲线&#xff1a;社交电商 经营增长是企业的永恒话题。在客户成本…

C++多线程编程(3):接收线程处理函数的返回值

文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 文章目录 处理带返回值的函数asyncpackaged_taskpromise 处理带返回值的函数 有三种方法&#xff1a; asyncpackaged_taskpromise async 第一种方法是使用 async 函数。 步骤&#xff1a; 使用 async 创建线程处理函…