def itemChange(self, change, value):
     if change==self.ItemPositionChange and self.bbox!=None:
         p=value.toPointF()
         if p.x()>self.bbox.right():
             p.setX(self.bbox.right())
         if p.x()<self.bbox.left():
             p.setX(self.bbox.left())
         if p.y()<self.bbox.top():
             p.setY(self.bbox.top())
         if p.y()>self.bbox.bottom():
             p.setY(self.bbox.bottom())
         pos=QtCore.QPointF(p.x(), p.y())
         return QtCore.QVariant(pos)
     return SignalingEllipseItem.itemChange(self, change, value)
 def __init__(self):
     SignalingEllipseItem.__init__(self)
     self.bbox=None