code: def mouseMoveEvent(self, ev):
      mouse_pos = QPointF(self.mapToScene(ev.pos()))
      self.mousePosChanged.emit(mouse_pos.toPoint())
      if self.middle_click and (
          self.horizontalScrollBar().isVisible()
          or self.verticalScrollBar().isVisible()
      ):
          # 放大到出现滚动条才允许拖动，避免出现抖动
          self._endPos = (
              ev.pos() / self.zoom_all - self._startPos / self.zoom_all
          )
          # 这儿不写为先减后除，这样会造成速度不一致
          self.point = self.point + self._endPos
          self._startPos = ev.pos()
          self.translate(self._endPos.x(), self._endPos.y())
      super(AnnotationView, self).mouseMoveEvent(ev)
  
file_path: PaddleSeg/EISeg/eiseg/widget/view.py
imports: from qtpy import QtWidgets, QtCore, QtGui
  from qtpy.QtCore import Qt, QPointF
label_desc: Use image node_id 4 for calling the AnnotationView obj's underlying member method code with example usage: obj.mouseMoveEvent(ev) without return types