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