有没有一种方法可以获得在QChartView
的绘图区域上的鼠标坐标?最好是使用轴单位。目标是在鼠标移动时显示鼠标坐标,以便用户可以测量绘制的对象。
我找不到任何内置函数来实现这一点在QChartView
上,所以我尝试使用QChartView::mouseMoveEvent(QMouseEvent *event)
来尝试计算绘图区域中的结果位置。问题是我无法获取任何对于绘图区域坐标系的参考。
我已经尝试使用mapToScene
、mapToItem
和mapToParent
,并且在所有我能够获取的对象上反向使用mapFrom...
来尝试实现这一点,但都没有成功。
我发现QChartView::chart->childItems()[2]
确实是绘图区域,不包括轴和轴标签。然后我可以调用QChartView::chart->childItems()[2]->setCursor(Qt::CrossCursor)
让十字光标只出现在绘图区域而不是相邻的对象上。但是,无论我尝试什么,似乎都没有正确地参考到该对象的坐标系。
QChartView::mouseMoveEvent()
中实现了chart()->mapToValue()
,这立即起作用了。子类化对于实现缩放和平移也非常有用。 - A. Vieira