我有一个QGraphicsScene我要复制并附加到列表的开头.这样做的最佳方法是什么?
QGraphicsScene* m_scene = new QGraphicsScene(); QGraphicsScene* m_DuplicateScene; QListm_list;
strager.. 6
这样做会非常复杂,因为你对这些孩子一无所知m_scene
.即使您为每种类型dynamic_cast
创建了一个clone()
函数QGraphicsItem
,您仍然需要记住其他人可以QGraphicsItem
创建子类并创建自己类型的图形项,使它们不可克隆.
基本上,不,你不能复制QGraphicsScene
(克隆过程中的所有项目).您甚至无法引用原始场景的子项的子项,因为QGraphicsItem
只能有一个场景.
当然,除非我错过了方法调用.但是,搜索"克隆","复制"和"复制"没有产生任何结果.
关于你的第二个问题,请使用QList
.因此,m_list.push_front
(m_DuplicateScene
);
(旁注:你先于列表的开头,然后附加到列表的末尾.)
这样做会非常复杂,因为你对这些孩子一无所知m_scene
.即使您为每种类型dynamic_cast
创建了一个clone()
函数QGraphicsItem
,您仍然需要记住其他人可以QGraphicsItem
创建子类并创建自己类型的图形项,使它们不可克隆.
基本上,不,你不能复制QGraphicsScene
(克隆过程中的所有项目).您甚至无法引用原始场景的子项的子项,因为QGraphicsItem
只能有一个场景.
当然,除非我错过了方法调用.但是,搜索"克隆","复制"和"复制"没有产生任何结果.
关于你的第二个问题,请使用QList
.因此,m_list.push_front
(m_DuplicateScene
);
(旁注:你先于列表的开头,然后附加到列表的末尾.)