Like all classes in Qt that have parent-child ownership relationships (QObject, QGraphicsItem, etc.), QGraphicsScene and QGraphicsItem have no copy constructors. In order to clone a scene, you will have to write the code to make a deep copy yourself, starting at the top level with QGraphicsScene::items(), and then for each QGraphicsItem in that list, cloning it and all of its child items.
If everything in the scene is a QGraphicsItem of your own derived class(es), then you could add a clone() method to these that would make the process somewhat simpler. For out-of-the-box QGraphicsItem-bsed classes, you can creat and copy them based on their QGraphicsItem::type() values.
You don't really need to keep any separate data structures. The whole hierarchy of object instances in the scene is there in the QGraphicsScene::items() method.
Bookmarks