2017-03-01 48 views
1

我试图在透明QDeclarativeItem中捕捉鼠标事件,将它包裹在QML中的所有其他元素中,并在整个程序中记录有关鼠标事件的信息。 mouseMoveEvents(QGraphicsSceneMouseEvent *)但是只有当执行mousePressEvent(QGraphicsSceneMouseEvent *)并且鼠标按钮被按下。QDeclarativeItem mouseMoveEvent(QGraphicsSceneMouseEvent * event)不能正常工作

在一个QWidget中,我会通过调用setMouseTracking(true)来解决这个问题。

如何在QDeclarativeItem中做到这一点?

+0

两者:在透明对象上捕获或在不透明对象上具有事件透明度在当前QT版本上很棘手。 –

+0

我正在使用qt4.8和QtQuick 1.1。用颜色填充项目不会改变任何内容。 –

+0

您是否设置了setMouseTracking(true); ? –

回答

1

使用hoverMoveEvent(QGraphicsSceneHoverEvent *)和设置setAcceptHoverEvents(真)解决了这个。它与mouseMoveEvent的工作方式相同,但在未按下鼠标按钮时也会调用它。