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

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

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

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

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月11日
    • 创建了问题 11月3日

    悬赏问题

    • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
    • ¥20 关于web前端如何播放二次加密m3u8视频的问题
    • ¥20 spring boot集成mqtt的使用问题
    • ¥15 使用百度地图api 位置函数报错?
    • ¥15 metamask如何添加TRON自定义网络
    • ¥66 关于川崎机器人调速问题
    • ¥15 winFrom界面无法打开
    • ¥30 crossover21 ARM64版本安装软件问题
    • ¥15 mymetaobjecthandler没有进入
    • ¥15 mmo能不能做客户端怪物