code: def itemChange(self, change, value):
      tmp_val = value
      if (
          change == QtWidgets.QGraphicsItem.ItemPositionChange
          and self.isEnabled()
      ):
          if value.x() > self.img_size[1]:
              x = self.img_size[1]
          elif value.x() < 0:
              x = 0
          else:
              x = value.x()
          if value.y() > self.img_size[0]:
              y = self.img_size[0]
          elif value.y() < 0:
              y = 0
          else:
              y = value.y()
          tmp_val = QPointF(x, y)
          self.m_annotation_item.movePoint(self.m_index, tmp_val)
          self.m_annotation_item.setDirty(True)
      return super(GripItem, self).itemChange(change, tmp_val)
  
file_path: PaddleSeg/EISeg/eiseg/widget/grip.py
imports: from PyQt5.QtCore import QPointF
  from qtpy import QtWidgets, QtGui, QtCore
label_desc: Use image node_id 9 for calling the GripItem obj's underlying member method code with example usage: obj.itemChange(change, value) and returns: super