Python 如何在VTK中暂停和重新启动动画

Python 如何在VTK中暂停和重新启动动画,python,vtk,Python,Vtk,我正在尝试用VTK做一个动画程序,在这个程序中我可以使VTK对象动画化 但是我没有暂停动画并重新启动动画,我最近才知道要停止VTK计时器,但如果我再次单击动画按钮启动,则程序会因以下错误而崩溃,我只有一个线索,下面的一行正在崩溃,但这一行将在第一次单击动画按钮时工作,但在第二次单击按钮时失败!!。第二个函数animation_Stop是我试图通过破坏整个函数来停止函数,因此我希望可以避免程序崩溃,但这也是一个失败 错误: python.exe已停止工作 错误行: self.renderWindo

我正在尝试用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)

如果这样启动VTK计时器:

vtkSmartPointer<vtkTimerCallback> cb = 
vtkSmartPointer<vtkTimerCallback>::New();
interactor->AddObserver(vtkCommand::TimerEvent, cb);
i、 e

[这只是一个瞬间的想法,你可以试试]…:

vtkCommand::EndInteraction
interactor->InvokeEvent(vtkCommand::TimerEvent, cb);