Я только что нашел этот вопрос, я знаю, что он старый, но я надеюсь, что мой ответ будет полезен для кого-то с этой проблемой.
В производном классе 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)