首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QGraphicsPathItem中悬浮元件的索引

QGraphicsPathItem中悬浮元件的索引
EN

Stack Overflow用户
提问于 2017-06-06 15:15:16
回答 2查看 101关注 0票数 0

我有一个QGraphicsPathItem,它是从笛卡尔x,y点的列表中画出来的。

确定游标何时悬停在其中一个点上的最佳(性能明智的)方法是什么?我现在遍历源列表,并将每个点与光标位置进行比较。

问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-06 18:17:33

Qt没有为您想要的提供内置解决方案。您应该重新实现QGraphicsScene::mouseMoveEvent,并在其中检查哪个点(如果有的话)被悬停(有一定的边距),即确定哪个点在当前鼠标位置(QGraphicsSceneMouseEvent::pos)的一定距离内。

计算最密集的任务是确定最近的点。一种简单的方法是迭代所有的点,但是一般的优化实现存在:

缓存最后一个结果并使用三角不等式对于提高该方法的性能可能很重要:

  • 如果当前鼠标悬停在一个点P上,那么下次您就可以验证它是否仍然停留在这个点上。
  • 如果当前没有悬停点,而且离P位置最近的点(您计算最近点的最后一个鼠标位置)位于d的距离,那么您不应该检查是否出现悬停,如果:norm(P - QGraphicsSceneMouseEvent::pos()) < d - hoverThreshold
票数 0
EN

Stack Overflow用户

发布于 2017-06-06 16:06:31

我通常使用QGraphicSceneitemAt()方法来检查光标下的图形项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44393809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档