当前位置:  开发笔记 > 编程语言 > 正文

Qt QGraphicsScene副本

如何解决《QtQGraphicsScene副本》经验,为你挑选了1个好方法。

我有一个QGraphicsScene我要复制并附加到列表的开头.这样做的最佳方法是什么?

QGraphicsScene* m_scene = new QGraphicsScene();
QGraphicsScene* m_DuplicateScene;

QListm_list;

strager.. 6

这样做会非常复杂,因为你对这些孩子一无所知m_scene.即使您为每种类型dynamic_cast创建了一个clone()函数QGraphicsItem,您仍然需要记住其他人可以QGraphicsItem创建子类并创建自己类型的图形项,使它们不可克隆.

基本上,不,你不能复制QGraphicsScene(克隆过程中的所有项目).您甚至无法引用原始场景的子项的子项,因为QGraphicsItem只能有一个场景.

当然,除非我错过了方法调用.但是,搜索"克隆","复制"和"复制"没有产生任何结果.

关于你的第二个问题,请使用QList::push_front.因此,m_list.push_front(m_DuplicateScene);

(旁注:你先于列表的开头,然后附加到列表的末尾.)



1> strager..:

这样做会非常复杂,因为你对这些孩子一无所知m_scene.即使您为每种类型dynamic_cast创建了一个clone()函数QGraphicsItem,您仍然需要记住其他人可以QGraphicsItem创建子类并创建自己类型的图形项,使它们不可克隆.

基本上,不,你不能复制QGraphicsScene(克隆过程中的所有项目).您甚至无法引用原始场景的子项的子项,因为QGraphicsItem只能有一个场景.

当然,除非我错过了方法调用.但是,搜索"克隆","复制"和"复制"没有产生任何结果.

关于你的第二个问题,请使用QList::push_front.因此,m_list.push_front(m_DuplicateScene);

(旁注:你先于列表的开头,然后附加到列表的末尾.)

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有