在QVTKRenderWindowInteractor中使用vtkOrientationMarkerWidget [PyQt4 / PySide]

时间:2016-06-07 09:33:44

标签: python pyqt4 pyside vtk qvtkwidget

我使用QVTKRenderWindowInteractor小部件类处理PySide / vtk GUI。 小部件运行良好,除非我尝试使用vtkOrientationMarkerWidget添加方向轴(参见图像):

axesActor = vtk.vtkAxesActor();
axes = vtk.vtkOrientationMarkerWidget()
axes.SetOrientationMarker(axesActor)
axes.SetInteractor(self.iren)
self.ren.AddActor(axesActor)
axes.EnabledOn() # <== application freeze-crash
axes.InteractiveOn()

类似bug has been already reported for ubuntu,表明该错误仅在Qt example时生成,而同一example without Qt效果良好。

此行为的任何解决方案? enter image description here

1 个答案:

答案 0 :(得分:3)

Nicholas R. Rypkema得到了这个答案:

https://nrr.mit.edu/blog/note-about-vtk-pyqt-and-vtkorientationmarkerwidget

长话短说:这将解决您的问题

axesActor = vtk.vtkAxesActor();
self.axes = vtk.vtkOrientationMarkerWidget()
self.axes.SetOrientationMarker(axesActor)
self.axes.SetInteractor(self.iren)
self.ren.AddActor(axesActor)
self.axes.EnabledOn() # <== application freeze-crash
self.axes.InteractiveOn()