4
我有一个QGraphicsScene,我想复制并追加到列表的开始。这样做的最好方法是什么?Qt QGraphicsScene副本
QGraphicsScene* m_scene = new QGraphicsScene();
QGraphicsScene* m_DuplicateScene;
QList<QGraphicsScene *>m_list;
我有一个QGraphicsScene,我想复制并追加到列表的开始。这样做的最好方法是什么?Qt QGraphicsScene副本
QGraphicsScene* m_scene = new QGraphicsScene();
QGraphicsScene* m_DuplicateScene;
QList<QGraphicsScene *>m_list;
这样做会非常复杂,因为您对m_scene
的孩子一无所知。即使你为每个类型的QGraphicsItem
创建了dynamic_cast
并创建了clone()
函数,但仍需要记住其他人可以继承QGraphicsItem
并创建自己的图形项目类型,使其不可被你克隆。
基本上,不,您不能复制QGraphicsScene
(克隆过程中的所有项目)。你甚至不能引用原始场景的孩子的子女,因为QGraphicsItem
只能有一个场景。
除非我错过了方法调用,当然。不过,搜索“克隆”,“复制”和“重复”不会产生任何结果。
关于第二个问题,请使用QList<T *>::push_front
。因此,m_list.push_front
(m_DuplicateScene
);
(旁注:你在前面加上一个列表的开始,并追加到列表的末尾。)
追加到列表,或在列表(有时被称为前置)的开头插入?另外,你只是想复制指针还是整个场景? – 2008-11-06 17:04:42
我想复制整个场景,并将其附加到列表中。 – 2008-11-10 09:49:57