VTK Python на Mac не ловит события клавиатуры

У меня следующий вопрос. Я собрал последний VTK под Mac Os X 10.6 и использую привязки Python. Я использую дистрибутив Python - Enthought Python Distribution (EPD). Все работает довольно хорошо, однако есть различие в поведении одной и той же программы на Mac и Linux в отношении события клавиатуры. Кажется, я упускаю очень важный момент. Часть кода выглядит следующим образом

    vtkrenderer = vtk.vtkRenderer()
    vtkrenderWindow = vtk.vtkRenderWindow()
    vtkrenderWindow.SetSize(800, 600)
    vtkrenderWindow.AddRenderer(vtkrenderer)
    vtkrenderWindowInteractor = vtk.vtkRenderWindowInteractor()
    vtkrenderWindowInteractor.SetRenderWindow(vtkrenderWindow)
    vtkrenderWindow.Render()
    vtkrenderer.ResetCamera()
    vtkrenderWindowInteractor.GetRenderWindow().AddObserver('CharEvent', self.show_update)
    vtkrenderWindowInteractor.Start()

Функция self.show_update имеет следующую форму:

def show_update(self, renderer, event):
    if renderer.GetKeyCode() == ' ':
        self.update(renderer, event)
        print 'ready'
        #Do computations here
        renderer.Render()

Однако пробел работает только в терминале, где я запускаю программу (используя python test_particles.py но полностью игнорируется в окне какао.

В Linux все работает как положено (клавиатуры работают нормально).

Любая помощь приветствуется.

1 ответ

Попробуйте запустить программу с pythonw:

pythonw test_particles.py

Это работало для меня под OS X 10.10.2 с использованием Anaconda Scientific Python Distribution.

Другие вопросы по тегам