qcustomplot单游标在多个坐标系中切换

news2024/11/23 2:39:18

1. 多坐标系—单个游标—游标在多个坐标系切换

在某些场景下,需要动态的添加多个坐标系,而游标只能在一个坐标系中显示,这时就需要将游标从默认的坐标系切换到指定坐标系,实现很简单,就不贴图了。代码如下:

tracer->setClipAxisRect(Rect);  //! QCPItemTracer*   QCPAxisRect*
tracerLabel->setClipAxisRect(Rect);  //! QCPItemText*

2.多坐标系—单个游标—游标贯穿多个坐标系

我的另一篇文章有过大概介绍,但是存在一些bug和一些繁琐的逻辑,最近做了些优化,有时间再更新下,这里大概描述下思路:

  1. 继承qcustomplot(可以不继承,根据自己需要,单纯为了方便)
  2. 创建 游标QCPItemTracer* 和 游标标签QCPItemText*,不绑定图层group,运行时编译器会输出:
    virtual QPointF QCPItemPosition::pixelPosition() const Item position type x is ptPlotCoords, but no axes were defined
    这是由于未绑定图层导致的,不影响运行。
  3. qcustomplot 提供了一个默认的图层,将图层样式改成需要的样式(为了好看,根据需要添加这一步)
  4. 添加图层,最重要部分,在首次添加图层时删除默认图层,一定是将第一个图层添加到plotLayout()中后再删除默认图层(plotLayout() 也就是 m_plot->plotLayout()); 删除坐标系用remove(),会将对象delete并nullptr;
  5. 隐藏不需要的轴
  6. 关联各个图层的X轴,每添加一个坐标系,就与已有的坐标系建立connect(…),注意双向建立;删除坐标系前与其他的坐标系双向disconnect(个人需要)
  7. QCPLegend ,下图右上角部件,legend是默认添加在qcustomplot默认的坐标系的insertLayout()对象里,而默认坐标系会在添加第一个坐标系后被删除,而在删除默认坐标系的同时,legend将被delete为nullptr;所以在添第一个坐标系的时候将legend添加到指定的坐标系 , 注意:此处的第一个坐标系与之前的不同,指的是除默认的自带的坐标系,每次向qcustomplot中添加的坐标系是其中第一个坐标系
    在我们删除坐标系时,注意删除的坐标系是否是绑定了legend的坐标系,如果是 ,用take(),该函数只会将legend从布局中移出,并不会delete,然后再删除坐标系,并将legend放入其他坐标系。
  8. QCustomPlot::mouseMove QCustomPlot::mousePress QCustomPlot::mouseRelease QCustomPlot::selectionChangedByUser QCustomPlot::legendDoubleClick等信号操作就不做赘述了

在这里插入图片描述

3. 多坐标系—多个游标—一一对应

这个网上案例很多,就不做叙述了

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

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

相关文章

docker中的c++ ROS节点中使用Matplotlib-cpp

背景 有时debug算法问题,想把算法,代码的中间量快速可视化出来,目前采用rviz或者qt_ros可以实现,但都不是很方便,代码开发量较大,常常会想要是能在ros c中也能像Matlab一样直接plot绘图就好了,…

英飞凌-AURIX-TC3XX 片上总线通信架构

目录1、英飞凌-AURIX-TC3XX 片上总线通信架构1.1、SRI-系统资源互连结构1.1.1、SRI简介1.1.2、SRI 的特征:1.1.3、SRI 结构相比于前一代产品主要的区别:1.1.4、SRI Crossbar 点对点连接机制1.1.5、SRI主机和SRI从机的连接情况1.2、系统外设总线1.3、BBB-…

Windows Qt连接达梦数据库

下载达梦数据库 首先可以在达梦数据库的官网下载达梦数据库:https://www.dameng.com/list_103.html 如果你的QT程序是64位的,那么就下载win64 的达梦数据库,相应的32位的QT程序要下载win32的达梦数据库。否则,程序在连接数据库时…

【图像分割】各向异性热扩散方程SAR图像分割【含Matlab源码 1879期】

⛄一、各向异性热扩散方程简介(具体理论见参考文献) 1 前言 图像分割是 图像解译的一个关键步骥。 图像分割属于图像解译的早期处理 , 目的是为更高水平的后续处理提供输人。 因此图像分割的好坏对后续 解译性能有较大的影响。 相对于光学图…

3、metasploit渗透测试初识

一、Metasploitable2靶机安装 参考(1条消息) Metasploitable-linux-2.0.0靶机下载配置教程_draper-crypto的博客-CSDN博客_metasploitable2-linux用户密码:msfadmin/msfadmin二、模块介绍 exploits(渗透攻击/漏洞利用模块)渗透攻击模块&#…

SuperMap GIS 倾斜摄影数据优化 QA

一、为什么要优化 倾斜摄影数据自身存在文件碎、体量大等特点。未经优化的倾斜摄影在目前市面上主流的三维平台上加载均会出现加载慢,浏览效率低等问题。特别是在浏览器端受文件请求量、网络带宽、硬件性能等方面的影响,倾斜摄影的显示效果往往不尽人意…

元房地产经纪人 — 科幻系列包 #2 来袭!

OUTR Studios 刚刚发布了他们最新的 The Sandbox 元宇宙科幻包,里面装满了很多好东西!新内容包括两个非玩家角色 (NPC)、两套可装备的太空服和两个独特的太空无人机。这个最新版本肯定会为已有的模块化科幻构建套件增添更多乐趣。无论你们是与朋友一起建…

大屏适配的两种方案

现在做大屏的需求越来越多,大屏的适配是个头疼的事情 一、基于rem的适配方案 rem是什么? rem是指相对于根元素的字体大小的单位,在日常开发过程中我们通常把根元素(html/body)的字体设置为10px,方便于我们计算(此时子元素的1rem就相当于10px)。 适用场景 不固定宽高…

A_A05_001 aithinker_serial_tool_安信可调试助手使用

目录 一、软件获取 二、软件基本功能介绍 1、接收区 2、串口通信参数配置区 3、串口打开关闭与其他设置区域 4、手动发送区域 5、多文本发送区 6、辅助区域 三、注意事项 一、软件获取 网盘链接 直戳跳转 二、软件基本功能介绍 1、接收区 接收区就是接收外部设备给串口…

理解vue2.x版本中productionTip=false设置无效的原因

首先&#xff0c;我们看到vue官网中关于productionTip的API使用&#xff1a; 但是&#xff0c;我在本地中使用却无效&#xff0c;代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta htt…

写接口用例文档,测接口

定义数据工具 共用API文档 产品、设计、前端、后端、测试、运维、售前、售后 mock 自动生成code和data 前后端 编写接口文档 post json格式 查询需要token值 APIfox介绍 一、常用解决方案 使用 Swagger 管理 API 文档 使用 Postman 调试 API 使用 mockjs 等工具 Mock AP…

算法刷题打卡第46天:排序数组---堆排序

排序数组 难度&#xff1a;中等 给你一个整数数组 nums&#xff0c;请你将该数组升序排列。 示例 1&#xff1a; 输入&#xff1a;nums [5,2,3,1] 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;nums [5,1,1,2,0,0] 输出&#xff1a;[0,0,1,1,2,5]堆排序…

[附源码]Python计算机毕业设计高校图书馆网站Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

C++初阶 模板进阶

作者&#xff1a;小萌新 专栏&#xff1a;C初阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;介绍进阶模板的一些特性 C 模板进阶非类型模板参数注意点模板的特化概念函数模板特化类模板的特化全特化偏特化模板的编译分离什么是编…

再见print !这个牛逼的库竟然这么强!

PySnooper 是一个非常方便的调试器。如果您正在试图弄清楚为什么您的Python代码没有按照您的预期去做&#xff0c;您会希望使用具有断点和监视功能的成熟Debug工具&#xff0c;但是许多Debug工具配置起来非常麻烦。 现在&#xff0c;有了PySnooper&#xff0c;您并不需要配置那…

最长回文子串问题(Manacher算法)

文章目录题目1&#xff09;例子演示2&#xff09;思路分析3&#xff09;Manacher 算法4&#xff09;代码展示题目 如何求得某字符串 str 的最长回文子串的长度&#xff1f; 要求时间复杂度 O(N) 1&#xff09;例子演示 什么是回文子串&#xff1f; 回文串即该字符串从前往…

Stable Diffusion 迁移和部署

文章目录1. 模型概述2. 模型架构3. 模型迁移流程3.1 前置准备3.2 CLIP text encoder3.3 VQ-VAE (fp16)3.4 Text conditioned unet3.5 创建pipeline3.6 web demo部署4. 效果展示5. 相关链接此实验需要最新的sdk实现模型的迁移&#xff0c;最终在1684X上进行推理。代码地址为&…

mysqldumpslow和mysqldumpslow

mysqldumpslow 这是一款mysql自带的慢查询工具&#xff0c;个人使用下来发现&#xff0c;可以满足在很多慢日志中找到有问题的慢的sql&#xff0c;并且可以进行sql排序。属于一种短小精干的工具。 命令大概形式&#xff1a; slowlog是需要分析的日志 mysqldumpslow -s c -t 1…

rocketmq源码-consumer启动

前言 这篇笔记记录consumer启动的逻辑 consumer主要是负责去broker中拉取消息&#xff0c;然后将拉取到的消息&#xff0c;交给消费者去处理 consumer本质上也是一个netty客户端&#xff0c;所以&#xff0c;在启动的时候&#xff0c;和producer有很多相似的点&#xff0c;但是…

[ vulhub漏洞复现篇 ] struts2远程代码执行漏洞s2-052(CVE-2017-9805)

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…