如何通过单击获取项目的 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 中获取微调器单击的项目?