前言:因为需要一次性从文件中加载大量数据到图表中显示,所以打算使用qchartview+qscrollarea,当横坐标数据超出默认设定的显示范围之后,重新设置chartview的宽度和scrollarea内容区域(scrollAreaWidgetContents)的宽度,从而实现一次性显示所有数据的目的。因为这样显示之后,如果滚动条向右边拖动时,图表的纵坐标会看不到,为了能够方便的显示纵坐标上的值,于是想到在鼠标放在图表时,通过一个标签显示鼠标所在位置的坐标。
一、自定义QChartView,实现鼠标移动事件,获取坐标值。
项目代码根目录添加c++头文件和源文件,切记根目录,不要在子目录。
showvaluechartview.h
#ifndef SHOWVALUECHARTVIEW_H
#define SHOWVALUECHARTVIEW_H
#include <QChartView>
class ShowValueChartView: public QChartView
{
Q_OBJECT
public:
explicit ShowValueChartView(QWidget *parent = Q_NULLPTR);
protected:
void mouseMoveEvent(QMouseEvent *e);
public: signals:
/** 鼠标在图表位置的数据改变时触发 **/
void onMousePositionValueChanged(QPointF valueGivenSeries);
};
#endif // SHOWVALUECHARTVIEW_H
showvaluechartview.cpp
#include "showvaluechartview.h"
ShowValueChartView::ShowValueChartView(QWidget *par


2495

被折叠的 条评论
为什么被折叠?



