как поймать событие клавиатуры в анимации Mayavi

Я ищу способ перехватывать события клавиатуры, чтобы перебирать разные наборы данных в анимации Mayavi.

Мой основной цикл:

while 1:
    time = TIME() - zero
    wx.Yield()
    atomsanim[:,:3] = atoms[:,3:]*cos(speed*time) + atoms[:,:3]
    f.scene.disable_render = True
    atom_index = 0
    for t, p in zip(types, plots):
        ms = p.mlab_source
        start = atom_index
        stop = atom_index+t
        ms.set(x=atomsanim[start:stop,0],y=atomsanim[start:stop,1],z=atomsanim[start:stop,2])
        atom_index += t
    f.scene.disable_render = False

mlab.show()

person sonium    schedule 21.02.2014    source источник
comment
Mayavi имеет очень естественную поддержку выбора мыши, но не поддерживает события клавиатуры. Если вам действительно нужны события клавиатуры, вы должны добавить UserInteractorStyle. Исходный код для этого находится в tvtk/tvtk_classes.zip/interactor_style_user.py.   -  person aestrivex    schedule 25.02.2014


Ответы (1)


Погуглив, я нашел эту страницу: http://osdir.com/ml/python-enthought-devel/2009-01/msg00325.html

Что в значительной степени решило проблему для меня

scene.interactor.add_observer('KeyPressEvent', your_function); 
def your_function(vtk_obj, event): 

... and then play with vtk_obj.GetKeyCode()
person fabrica    schedule 08.12.2014