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

给个赏吧

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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