QgraphicsSceneのマウスムーブイベント

2016/09/02

やりたいのに出来ないQgraphicsSceneのmouseMoveEventに関するメモ。
たびたび調べてる気がするので、メモする。

やりたい事

  • 画像ビュアーのようなものをつくる
  • その時、マウスカーソルにおける画像上の座標を常に表示させるようにしたい


問題

  • 画像上の座標はevent.scenePos()で取得する。これは、QGraphicsSceneででしかできない。
  • Widgetのマウスが動いた時に呼び出されるイベント mouseMoveEventはマウスをドラッグしてる時しか呼び出されない。
  • 通常のWidgetはsetMouseTracking(True)にする事で、マウスが動くと常に呼び出されるようになる、が、QGraphicsSceneにはsetMouseTrackingはない。
  • よって、QGraphicsSceneにおいて常にmouseMoveEventを呼び出し、scenePos()で座標を取得するようにできない。

Tracking mouse move in QGraphicsScene class
http://stackoverflow.com/questions/7772080/tracking-mouse-move-in-qgraphicsscene-class