2014-10-18 105 views
1

我有一個QGraphicsItem的子類,我想每次將鼠標懸停在該Item上時跟蹤鼠標位置,它應該給出與QGraphicsItem相對的位置。我知道,在QWidget(使用QWidget.setMouseTracking)和QMainWindow(通過安裝事件過濾器)時如何處理此問題,但我無法弄清楚如何爲QGraphicsItem執行此操作。鼠標移動事件只有在有鼠標按下事件時纔會觸發,但這不是我們想要的。每當我徘徊在QGraphicsItem上時,我都需要觸發器。請提供您的建議在QGraphicsItem上跟蹤鼠標位置

回答

0

您將希望使用my_item.setAcceptHoverEvents(True)來啓用鼠標移動事件,而無需鼠標按下事件。

注意,這不會引發mouseMoveEvent而是將觸發hoverMoveEvent(與hoverEnterEventhoverLeaveEvent沿着您最初超過或關閉分別QGraphicsItem移動鼠標。所以一定要確保你在你的QGraphicsItem子類覆蓋此方法。

+0

再次感謝!!! .. :)但我也想要mousemove事件,因爲我正在使用這個,panning.can我在鼠標懸停事件中返回mousemoveEvent? – password 2014-10-18 05:52:16

+0

我不確定我是否理解。當你點擊並移動時,'mouseMoveEvent'仍然會被觸發。也許你需要用你想要達到的目標更新你的問題。 – 2014-10-18 05:54:06

+0

我有一個QGraphicsItem,它將縮放和平移(使用鼠標移動事件)。我剛剛學過PyQt4。我正在開發一個小定製器。 Thnks .. :) – password 2014-10-18 06:13:54