Как получить в настоящее время активный инструмент в Bokeh Figure - PullRequest
0 голосов
/ 03 октября 2019

Я заинтересован в том, чтобы найти текущий выбранный инструмент из панели инструментов на фигуре. Прямо сейчас у меня есть настроенная панель инструментов, и я хочу иметь возможность получить активный инструмент в обратном вызове Python для приложения bokeh.

def scrollCallback():
    # check if PanTool() is currently selected/active

fig = figure(...)
fig.toolbar.active_drag = None
fig.toolbar.active_scroll = None
fig.tools = [PanTool(), BoxZoomTool(), ResetTool()]
fig.on_event(events.Pan, scrollCallback)

1 Ответ

0 голосов
/ 03 октября 2019

Начиная с Bokeh 1.3.4 эта информация не предоставляется общедоступному API Python. Вы можете проверить внутреннее свойство .active на стороне JavaScript (например, из обратного вызова CustomJS). хитрый обходной путь для получения информации для обратного вызова Python может состоять в том, чтобы CustomJS посмотреть на все инструменты, чтобы увидеть, какие из них активны, и установить какое-то значение, скажем, на невидимом глифе, который сторона Python может отслеживать изменения,Я не думаю, что это хорошее решение, но, вероятно, лучшее из доступных. Вы можете предложить сделать активное состояние общедоступным в качестве запроса новой функции, сделав проблему с GitHub . Теперь, когда существуют свойства только для чтения , может быть просто и безопасно разрешить этому внутреннему свойству присоединяться к общедоступному API.

...