QCustomPlot鼠标跟随显示坐标值

QCustomPlot鼠标跟随显示坐标值tags:QCustomPlothover背景Qt最大的优势就是各种库非常全,尤其在图表方面,在5.7版本之后虽然引入了原本企业版才有的QCharts,但相对于只有2个文件就可以引入库的QCustomPlot来说还是太臃肿了。这里解决一个使用图表的都会碰到的问题–跟随鼠标显示值,在QCustomPlot里非常简单,它早就给出了解决方案-QCPItemTracer.可以直接看下面…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用


背景

Qt最大的优势就是各种库非常全,尤其在图表方面,在5.7版本之后虽然引入了原本企业版才有的QCharts,但相对于只有2个文件就可以引入库的QCustomPlot来说还是太臃肿了。
这里解决一个使用图表的都会碰到的问题–跟随鼠标显示值,在QCustomPlot里非常简单,可以直接看下面的效果图。

可以直接去gitee仓库fork

效果

在这里插入图片描述

代码


class MyCustomPlot : public QCustomPlot
{
    Q_OBJECT
public:
    MyCustomPlot(QWidget *parent = nullptr);

    virtual ~MyCustomPlot()
    {
    }

protected:
    virtual void mouseMoveEvent(QMouseEvent *event);

private:
    int lastIdx = -1;
    QCPBars *myBars = nullptr;
    QCPItemStraightLine *line = nullptr;  // tooltip的垂直线
};


class MyCustomPlot : public QCustomPlot
{
    Q_OBJECT
public:
    MyCustomPlot(QWidget *parent = nullptr);

    virtual ~MyCustomPlot()
    {
    }

protected:
    virtual void mouseMoveEvent(QMouseEvent *event);

private:
    int lastIdx = -1;
    QCPBars *myBars = nullptr;
    QCPItemStraightLine *line = nullptr;  // tooltip的垂直线
};

参考

  1. Creating dynamic axis tags using items
  2. QCustomplot使用分享(四) QCPAbstractItem

给个赏吧

如果我的文字解决了你的问题,请打个赏的,让我更有动力:)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181251.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(2)


相关推荐

  • c#打包安装程序[VS2010]「建议收藏」

    c#打包安装程序[VS2010]「建议收藏」一:创建创建Windows安装项目二:添加内容文件三:添加项目输出四:添加注册表信息五:创建快捷方式六:生成Windows安装程序

  • 阿里云Centos7在线安装mysql5.7

    阿里云Centos7在线安装mysql5.7

  • spring cloud 入门系列八:使用spring cloud sleuth整合zipkin进行服务链路追踪[通俗易懂]

    好久没有写博客了,主要是最近有些忙,今天忙里偷闲来一篇。我是华丽的分割线微服务架构是一种分布式架构,微服务系统按照业务划分服务单元,一个微服务往往会有很多个服务单元,一个请求往往会有很多个单元参与

  • leetcode-15三数之和(双指针)「建议收藏」

    leetcode-15三数之和(双指针)「建议收藏」原题链接给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[] 提示:0 <= nums.length <= 300

  • 安排工作任务五步法[通俗易懂]

    安排工作任务五步法[通俗易懂]安排工作五步法第一回,讲清楚具体事项;验收标准,工作内容是什么,方法第二回,让员工原封不动地复述事项;让执行者重复一遍要求做的这项工作内容,一定要让他说清楚,有点含糊都要马上纠正第三回,和员工讨论该事项的目的;重要性、影响面第四回,交流并作出该事项的预案;假如在工作中遇到某某情况,问他会如何处理第五回,让员工围绕该事项阐明自身观点。让执行工作的人试试,如果是主导这项工作,他会如何来安排处理。看看他的逻辑,在结合自己,是否有值得改善的地方。也可以…

    2022年10月28日
  • 网页自动跳转 5种方法

    网页自动跳转 5种方法转自:https://jingyan.baidu.com/article/36d6ed1f3c03c01bcf4883c9.html网页自动跳转5种方法利用HTML标记(META中的REFRESH属性)用HTML标记,就是用META的REFRESH标记,举例如下:其中content=10是10秒钟后跳转【5种常见网页自动跳转方法】网页自动跳

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号