如何在 Python-VTK 中禁用 VTK 的热键

How to disable VTK's hotkey in Python-VTK

我想在 Python 版本中禁用一些 VTK 热键。虽然存在 C++(可能还有 js)的答案 here,但它似乎不适用于 Python 版本。

我尝试在我的 InterfactionStyle 或我的 QVTKRenderWindowInteractor 上重载 OnKeyPress 但它不起作用。例如,我想禁用键“w”和“s”上的 wireframe/surface 视图开关。

vtkInteractorStyle::OnChar中定义。 所以尝试用类似的东西重载这个方法:

class MyInteractorStyle(vtk.vtkInteractorStyleTrackballCamera):                                                                                                                                                                                                                             
  def __init__(self, parent = None):                                                                                                                                                                                                                                                        
    self.AddObserver('CharEvent', self.OnChar)                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                            
  def OnChar(self, obj, event):                                                                                                                                                                                                                                                             
      if obj.GetInteractor().GetKeyCode() == "w":                                                                                                                                                                                                                                           
          return                                                                                                                                                                                                                                                                            
      super(MyInteractorStyle, obj).OnChar()