Note
Go to the end to download the full example code
Action activation triggering API demoΒΆ
Activate actions in the current control of a window.
Action activation works both in direct and socket APIs but querying the lists of available action methods is only available in direct mode.
import anatomist.direct.api as anatomist
from soma.qt_gui.qt_backend import Qt
import sys
runloop = False
if Qt.QApplication.instance() is None:
runloop = True
a = anatomist.Anatomist()
vol = a.loadObject('irm.ima')
w = a.createWindow('Axial')
w.addObjects(vol)
w.activateAction(action_type='key_press', method='movie_start_stop')
# set backward movie mode
w.activateAction(action_type='key_press', method='movie_next_mode')
# loop forward
w.activateAction(action_type='key_press', method='movie_next_mode')
# loop backward
w.activateAction(action_type='key_press', method='movie_next_mode')
# loop both ways
w.activateAction(action_type='key_press', method='movie_next_mode')
# query available actions methods
c = w.view().controlSwitch().activeControlInstance()
print('in control:', c.name())
kpmethods = c.keyPressActionLinkNames()
print('* keyPress methods:', kpmethods)
mpmethods = c.mousePressActionLinkNames()
print('* mousePress methods:', mpmethods)
w.setControl('SelectionControl')
c = w.view().controlSwitch().activeControlInstance()
print('in control:', c.name())
kpmethods = c.keyPressActionLinkNames()
print('* keyPress methods:', kpmethods)
mpmethods = c.mousePressActionLinkNames()
print('* mousePress methods:', mpmethods)
if runloop: # and 'sphinx_gallery' not in sys.modules:
Qt.QApplication.instance().exec_()
if runloop or 'sphinx_gallery' in sys.modules:
del c, w, vol, kpmethods, mpmethods
Total running time of the script: (0 minutes 0.000 seconds)