2017-03-01 65 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的工作方式相同,但在未按下鼠標按鈕時也會調用它。