我正在尝试在VTK中制作一个动画程序,我可以在其中制作VTK对象的动画 但我没有做暂停动画和重新启动动画,我最近知道停止VTK计时器,但如果我再次点击动画按钮启动然后程序崩溃跟随错误,我只有一个线索,以下行崩溃,但这条线将在第一次动画按钮点击时工作,但在第二次按钮点击失败!!第二个功能" animation_Stop"是我试图通过破坏整个功能来停止功能,所以我希望我能避免程序崩溃,但它也是一个失败!
错误:
python.exe已停止工作
错误行:
self.renderWindowInteractor.SetRenderWindow(obj_renwin.renwin)
请注意我动画的详细代码行,有人请帮我重启 并在vtk python中暂停动画
def animation(self,obj_renwin,X):
if X==1:
print "start or restart animation"
self.renderWindowInteractor = vtk.vtkRenderWindowInteractor()
objRen=self.renderWindowInteractor.GetRenderWindow()
self.renderWindowInteractor.SetRenderWindow(obj_renwin.renwin)
obj_renwin.renwin.Render()
self.renderWindowInteractor.Initialize()
cb = vtkTimerCallback()
cb.actor = obj_renwin.actor
self.renderWindowInteractor.AddObserver('TimerEvent', cb.execute)
self.timerId = self.renderWindowInteractor.CreateRepeatingTimer(5);
if X==2:
print "stop animation"
self.renderWindowInteractor.DestroyTimer(self.timerId)
def animation_Stop(self,obj_renwin):
print "stop animation"
#self.animation(obj_renwin,1).destroy()
del (ConeRender.Cone.animation)
答案 0 :(得分:0)
如果你这样开始vtkTimer:
vtkSmartPointer<vtkTimerCallback> cb =
vtkSmartPointer<vtkTimerCallback>::New();
interactor->AddObserver(vtkCommand::TimerEvent, cb);
您可以考虑使用
停止/暂停计时器vtkCommand::EndInteraction
即
interactor->InvokeEvent(vtkCommand::TimerEvent, cb);
[只是片刻思考,你可以尝试一下] ...... :)