如何通过单击获取项目的id值

时间:2014-01-16 12:01:53

标签: qt qt4 qwt

这是我的问题,我完全想要一个建议,这对我很有帮助。

我想在我的情节中添加两个项目(例如两个svg项目)。第一项是ID1,第二项是ID2。

当我点击第一个svg项时,它应该发出一个信号。同样,当我点击第二个svg项时,它应该发出另一个信号。但我不想使用物品的坐标。

我的目标是,当我点击它们时,项目必须告诉我他们的ID。 **但我不想使用物品的坐标。我无法弄清楚如何,请给我一个建议。

问候。

1 个答案:

答案 0 :(得分:1)

我担心没有处理坐标就无法做到这一点,因为QwtPlotItem进程只绘制事件。 Qwt不会将鼠标事件路由到项目,因此您需要手动实现此行为。

  • 在地图的canvas()上安装事件过滤器并拦截鼠标事件。
  • 使用QwtPlot::invTransform将鼠标坐标转换为与x和y轴对应的值。
  • 重复QwtPlot::itemList并检查每个项目的QwtPlotItem::boundingRect是否包含点击的点。