2

我有以下问题。我已经在 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 中,一切都按预期工作(键盘工作正常)。

任何帮助表示赞赏。

4

1 回答 1

2

尝试使用以下命令启动程序pythonw

pythonw test_particles.py

这在 OS X 10.10.2 下使用 Anaconda Scientific Python Distribution 对我有用。

于 2015-09-14T20:36:51.770 回答