我在某个函数里给renderer->addactor(一个actor)。
因为renderer可以加多个actor,这里我就没有将actor写成类成员变量,只是函数里临时new出来的。
后来我想要remove掉这个actor时傻眼了。因为获取不到actor的指针了。
解决思路:
actor有个类似list的容器叫actorcollection。我每次将actor加入renderer的时候,actorcollection也就additem这个对象。然后记下actor的编号到QStringList。
想要删除actor时,有对应的id。在QStringList中获取id所在的位置为index(就是第几次存入的actor),将对应id给remove掉,然后actorcollection有函数getitemasobject(int i),将index填入就能获取到对应的actor,但是返回的数据类型是vtkobject,这里可以直接强制转换为vtkactor,然后renderer把这个actor给remove掉,然后actorcollection将这个actor给remove掉。就此解决。