我有以下问题。我已经在 Mac Os X 10.6 下编译了最新的 VTK,并且我正在使用 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
但在 Cocoa 窗口中被完全忽略。
在 Linux 中,一切都按预期工作(键盘工作正常)。
任何帮助表示赞赏。