code: def mouseDragEvent(self, ev):
      if ev.button() != QtCore.Qt.MouseButton.LeftButton:
          ev.ignore()
          return
  
      if ev.isStart():
          # We are already one step into the drag.
          # Find the point(s) at the mouse cursor when the button was first
          # pressed:
          pos = ev.buttonDownPos()
          pts = self.scatter.pointsAt(pos)
          if len(pts) == 0:
              ev.ignore()
              return
          self.dragPoint = pts[0]
          ind = pts[0].data()[0]
          self.dragOffset = self.data["pos"][ind] - pos
      elif ev.isFinish():
          self.dragPoint = None
          return
      else:
          if self.dragPoint is None:
              ev.ignore()
              return
  
      ind = self.dragPoint.data()[0]
      self.data["pos"][ind] = ev.pos() + self.dragOffset
      self.updateGraph()
      ev.accept()
  
file_path: pyqtgraph/pyqtgraph/examples/CustomGraphItem.py
imports: import numpy
  import pyqtgraph
  from pyqtgraph.Qt import QtCore
label_desc: Use image node_id 5 for calling the Graph obj's underlying member method code with example usage: obj.mouseDragEvent(ev) without return types