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

これは、Anaconda Scientific Python Distributionを使用して、OS X 10.10.2で機能しました。

于 2015-09-14T20:36:51.770 に答える