【发布时间】:2012-10-30 00:10:07
【问题描述】:
我有以下问题。我已经在 Mac Os X 10.6 下编译了最新的 VTK,并且我正在使用 Python 绑定。我使用的 Python 发行版是 Enthought Python 发行版 (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 中,一切都按预期工作(键盘工作正常)。
感谢任何帮助。
【问题讨论】: