橘猫掸子 2021-11-03 03:40 采纳率: 25%
浏览 28
已结题

QGraphicsItem如何检测与鼠标发生碰撞?

场景需求:流程图的中的图形模块,当鼠标(无论是按压还是未按压状态)进入图形某块后,都显示图形模块的各个边中点。

方案一:利用hoverEnterEvent和hoverLeaveEvent两个事件,问题是:当鼠标按压时hoverEnterEvent事件不响应。
方案二:想利用QGraphicsItem->scene()->collidingItems(this),碰撞检测做。问题是:无法知晓是不是跟鼠标发生了碰撞。
方案三:这个方案是最麻烦的。在QGraphicsScene中的mouseMoveEvent事件中,实时检测是不是位于图形模块,然后设置各个边中点可见,如果鼠标移开还得设置不可见,因此这里必须通过成员在保存上次鼠标所在的图形模块指针,非常麻烦!

  • 写回答

0条回答 默认 最新

      编辑
      预览

      报告相同问题?

      问题事件

      • 系统已结题 11月10日
      • 创建了问题 11月3日
      手机看
      程序员都在用的中文IT技术交流社区

      程序员都在用的中文IT技术交流社区

      专业的中文 IT 技术社区,与千万技术人共成长

      专业的中文 IT 技术社区,与千万技术人共成长

      关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

      关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

      客服 返回
      顶部