天天看点

QGraphicsItem的hoverMoveEvent()函数

QGraphicsItem的mouseMoveEvent()函数必须鼠标按下的情况下进行move才会触发。

QWidget的mouseMoveEvent()函数可以通过设置setMouseTracking(true)在鼠标不需要按下的情况下,触发鼠标move事件。

QGraphicsItem要实现鼠标不按下的情况下,获取鼠标move事件,可通过**hoverMoveEvent()来实现,可通过设置setAcceptHoverEvents(true)**使其生效

补充:查看hoverMoveEvent()帮助文档,有一句话是这样说的,Calling QEvent::ignore() or QEvent::accept() on event has no effect.

说明hoverMoveEvent()事件是一个截断事件,无法通过ignore和accept进行传输。类似还有hoverEnterEvent()和hoverLeaveEvent()等其他相关的sceneEvent。(sceneEvent()帮助文档中有一句话:event is the intercepted event 事件是截断事件)

继续阅读