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

Posted

技术标签:

【中文标题】如何通过单击获取项目的 id 值【英文标题】:how to get id value of the items by clicking 【发布时间】:2014-01-16 12:01:52 【问题描述】:

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

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

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

我的目标是,当我点击它们时,项目必须告诉我它们的 ID。 **但我不想使用项目的坐标。不知道怎么弄,请指教。

问候。

【问题讨论】:

你如何表示你的 svg 对象?信号是如何连接的? 【参考方案1】:

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

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

【讨论】:

感谢您的回答。目前我正在使用与您的答案相同的方法。我正在根据 xml 文件中的数据绘制这些项目。我的意思是坐标是随机变化的。所以我认为我应该在没有坐标的情况下绘制。我的大脑停在了这一点上。

以上是关于如何通过单击获取项目的 id 值的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击 tableview 单元格上的按钮获取文档 ID?

从片段中获取意图值后,我如何在 recyclerview 项目中实现单击

如何获取listView位置值并通过intent传递给另一个类

如何从该片段中的 onItemSelectedListener 中获取微调器单击的项目?

如何获取所选列表视图项中的id以打开上下文菜单并通过下一个活动来实现目标。

OnItemClick 如何从列表视图中获取单击项目的文本值