需求:鼠标停留在QChartView上时,想要计算停留位置的数值。
一开始的方法是想要通过鼠标移动事件计算鼠标在QChartView上的坐标,在换算成数值,后来发现QChartView中除了图表数据,还有坐标轴与坐标轴数值标签占了高度,且这个高度还不好计算,所以采用第二种方式,这是通过QChartView、QChart提供的函数来实现的。
//鼠标事件就不在此赘述了, 如果不知道怎么添加鼠标监听事件, 看我的另外一篇文章
https://blog.csdn.net/u011391361/article/details/134800659?spm=1001.2014.3001.5502
auto const widgetPos = mouseEvent->localPos();
auto const scenePos = mChartView->mapToScene(QPoint(static_cast<int>(widgetPos.x()), static_cast<int>(widgetPos.y())));
auto const chartItemPos = mChart->mapFromScene(scenePos);
auto const valueGivenSeries = mChart->mapToValue(chartItemPos);
效果如下图(看图片中的打印):