考虑以下脚本
import vtk
ren = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
an_actor = vtk.... # create an actor
ren.AddActor(an_actor)
iren.Initialize()
renWin.Render()
iren.Start()
如果脚本在那里结束,一切都很好,创建的窗口将被关闭,并且在手动关闭窗口(单击 X)或按下退出键(Q 或 E)时释放资源。
但是,如果还有更多的语句,您会注意到窗口仍然存在,这是可以理解的,因为我们没有调用任何东西来放弃它,只是结束了交互循环。
通过附加以下内容自行查看:
temp = raw_input('The window did not close, right? (press Enter)')
根据VTK/Examples/Cxx/Visualization/CloseWindow,这
iren.GetRenderWindow().Finalize() # equivalent: renWin.Finalize()
iren.TerminateApp()
应该完成工作,但事实并非如此。
我还需要做什么才能以编程方式关闭打开的窗口?