Я начинаю с vtk (6) в python и имею проблему с обработкой KeyPressEvent. Я хочу, чтобы подкласс vtkInteractorStyleTrackballCameraКак получить код ключа в vtk KeyPressEvent с использованием python
, если я использую этот шаблон, мой стиль Interactor не getKeySym(), и я не могу расшифровать, что клавиша была нажата
class KeyPressInteractorStyle(vtk.vtkInteractorStyleTrackballCamera):
def __init__(self,parent=None):
self.AddObserver("MiddleButtonPressEvent",self.middleButtonPressEvent)
self.AddObserver("MiddleButtonReleaseEvent",self.middleButtonReleaseEvent)
self.AddObserver("KeyPressEvent",self.keyPress)
def keyPress(self,obj,event):
key = obj.GetKeySym() #Does not work
print("key %s" % key)
return
def middleButtonPressEvent(self,obj,event):
...
return
def middleButtonReleaseEvent(self,obj,event):
...
return
Однако, если я использую класс фабрики vtkInteractorStyleTrackballCamera и добавить наблюдателей с этим шаблоном, тот же keyPress() может получить доступ к GetKeySym().
def KeyPress(obj,event):
key = obj.GetKeySym() #works fine
print("key %s" % key)
def MiddleButtonPressEvent(obj,event):
...
return
def MiddleButtonReleaseEvent(obj,event):
...
return
...
interactor.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera())
interactor.AddObserver("KeyPressEvent",KeyPress)
interactor.AddObserver("MiddleButtonPressEvent",MiddleButtonPressEvent)
interactor.AddObserver("MiddleButtonReleaseEvent",MiddleButtonReleaseEvent)
Я новичок, что мне делать, чтобы получить функциональность в моем классе?