自定义的QGraphicsItem按网格背景拖动
def itemChange(self, change, value):
if change == QGraphicsItem.ItemPositionChange:
newPos = value
if QApplication.mouseButtons() == Qt.LeftButton:
xV = round(newPos.x() / 20) * 20 #20为网格大小
yV = round(newPos.y() / 20) * 20
return QPointF(xV, yV)
return value
对于ItemGroup只需要重写一下QGraphicsItemGroup中的ItemChange函数就好。