背景
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的垂直线
};
参考
给个赏吧
如果我的文字解决了你的问题,请打个赏的,让我更有动力:)