I remember same issue for myself, I re-implemented
QGraphicsItem::itemChange(GraphicsItemChange change, const QVariant & value)
for both children and parent.
When each change
was a QGraphicsItem::ItemPositionChange
that child emits a signal, and the parent has a corresponding slot.