次の質問があります。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 では、すべてが期待どおりに機能します (キーボードは正常に機能しています)。
どんな助けでも大歓迎です。