I have a QGraphicsScene that I want to copy and append to the start of a list. What is the best method of doing this?
QGraphicsScene* m_scene = new QGraphicsScene();
QGraphicsScene* m_DuplicateScene;
QList<QGraphicsScene *>m_list;
I have a QGraphicsScene that I want to copy and append to the start of a list. What is the best method of doing this?
QGraphicsScene* m_scene = new QGraphicsScene();
QGraphicsScene* m_DuplicateScene;
QList<QGraphicsScene *>m_list;
Doing this would be very complicated because you don't know anything about the children of m_scene
. Even if you dynamic_cast
and create a clone()
function for each type of QGraphicsItem
, you still need to remember that other people can subclass QGraphicsItem
and create their own type of graphics item, making them unclonable by you.
Basically, no, you can't duplicate a QGraphicsScene
(cloning all items in the process). You can't even make references to the children of the original scene's children because a QGraphicsItem
can only have one scene.
Unless I'm missing a method call, of course. Searches for "clone," "copy," and "duplicate" produced no results, though.
On your second question, use QList<T *>::push_front
. Thus, m_list.push_front
(m_DuplicateScene
);
(Side note: you prepend to the start of a list, and append to the end of a list.)