Python Neuroglancer Получение ввода - PullRequest
0 голосов
/ 17 марта 2020

Ниже приведен фрагмент кода из общедоступного Google Neuroglancer. Это из примера на их github. Может ли кто-нибудь объяснить, что именно делает этот код и как он это делает? У меня проблемы с пониманием, и я не знаю, что именно является переменной s. Спасибо за помощь.

def my_action(s):
    print('Got my-action')
    print('  Mouse position: %s' % (s.mouse_voxel_coordinates,))
    print('  Layer selected values: %s' % (s.selected_values,))
viewer.actions.add('my-action', my_action)
with viewer.config_state.txn() as s:
    s.input_event_bindings.viewer['keyt'] = 'my-action'
    s.status_messages['hello'] = 'Welcome to this example'

1 Ответ

0 голосов
/ 17 марта 2020

В этом примере добавляется привязка клавиш к средству просмотра и добавляется сообщение о состоянии. Когда вы нажимаете клавишу t, запускается функция my_action. my_action принимает текущее состояние действия и захватывает координаты мыши и выбранные значения в слое.

Метод .txn() выполняет транзакцию изменения состояния для объекта ConfigState. И под изменением состояния я подразумеваю, что это изменяет конфиг. Существует несколько действий по умолчанию для объекта ConfigState (определено в части здесь ), и вы изменяете эту конфигурацию, добавляя свое собственное действие.

mouse_coordinates и selected_values объекты определены в Python здесь и ссылаются на реализацию машинописного текста здесь . В этом примере также устанавливается сообщение о состоянии в состоянии конфигурации, и оно реализовано здесь .

Может быть полезно сначала указать исходный код для различных задействованных функций.

...