因为 QGraphicsSvgItem::mouseMoveEvent(event); 这行代码。这是因为 QGraphicsSvgItem 类本身就支持拖动操作。当调用 setFlag(QGraphicsItem::ItemIsMovable); 时,就已经启用了拖动功能。这时isDragging = false失效。
可以在需要禁止移动的函数中添加:
setFlag(QGraphicsItem::ItemIsMovable, false); 来禁用移动,setFlag(QGraphicsItem::ItemIsMovable, true); 来启用移动。