我现在已经尝试了几个小时来理解QGraphicsItem是如何对待孩子的。我创建了一个新的QGraphicsItem B (实际上是它自己的子类),然后通过调用B上的setParentItem方法将它作为子类添加到另一个QGraphicsItem A中。我已经用一些迭代A的子代的调试代码进行了验证,然后将A添加到Manager中的As列表中。稍后在程序中,在QWidget中,列表迭代器是从管理器获得的。然后,我迭代As列表,并检查每个As的子节点,所有的子节点都消失了。我已经在调试器中验证了Manager实际上是同一个实例,列表也是同一个实例。不知何故,这真的让我感到困惑,谁在Qt FWK中为我决定我的A对象不再需要它们的子对象?
我是Qt和C++的新手,也有从java到objective-c的丰富开发经验,所以我希望它是Qt的一个特长,我不知道,不完全是我自己的愚蠢……
诚挚的问候,
安德烈
发布于 2011-12-15 04:03:38
仅供参考:专为分组而设计的QGraphicsItemGroup。
//将所有选中的项组合在一起
group*组= scene->createItemGroup(scene->selecteditems());
https://stackoverflow.com/questions/8201373
复制