Now I use the itemChange() function and it seems to work, but now I think how to detect index of the moved GraphicsItem and the index of the scene
You can have a QHash (index, pointer) of scenes and search them by id.

So, if you move a QGraphicsItem it's event itemChange(GraphicsItemChange change, const QVariant &value), is called (change == ItemPositionHasChanged). So you can get it's id, and send it whereever you want. You can keep the ID of the scene on each qgraphics item or, better, a pointer.