この質問を見つけたばかりです。古いことはわかっていますが、この問題を抱えている人にとって私の答えが役立つことを願っています。
QGraphicsView
またはQGraphicsScene
派生クラスでメソッドをオーバーライドし、mouseMoveEvent
イベントのbuttons
プロパティをチェックして、現在押されているボタンを確認します。私が取り組んでいる小さなプロジェクトの PyQt4 のコード例を次に示します。
def mouseMoveEvent(self, event):
buttons = event.buttons()
pos = self.mapToScene(event.pos())
object = self.scene().itemAt(pos)
type = EventTypes.MouseLeftMove if (buttons & Qt.LeftButton) else\
EventTypes.MouseRightMove if (buttons & Qt.RightButton) else\
EventTypes.MouseMidMove if (buttons & Qt.MidButton) else\
EventTypes.MouseMove
handled = self.activeTool().handleEvent(type, object, pos)
if (not handled):
QGraphicsView.mouseMoveEvent(self, event)