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