Python 回调函数#
Python回调(有时也称为事件处理器)是你可以附加到小部件的Python函数。你只能在Bokeh服务器应用中使用这些回调。对于不需要Bokeh服务器的交互式回调,请参见JavaScript回调。
当Bokeh的Model上的某些属性发生变化时,会调用Bokeh的Python回调函数。事件处理程序的函数签名由它们如何附加到小部件(例如通过.on_change或.on_event)决定。
on_change 回调触发器#
所有的widgets,例如,都有一个
.on_change 方法,该方法接受一个属性名称和一个或多个事件
处理程序作为参数。这些处理程序应具有函数
签名,(attr, old, new),其中 attr 指的是更改的
属性的名称,而 old 和 new 指的是属性的先前和更新后的
值。
def my_text_input_handler(attr, old, new):
print("Previous label: " + old)
print("Updated label: " + new)
text_input = TextInput(value="default", title="Label:")
text_input.on_change("value", my_text_input_handler)
有关使用.on_change监视的属性的更多信息,请参阅bokeh.models下的相应模型,在参考指南中。
on_event 回调触发器#
此外,一些部件,包括
Button,
Dropdown, 和
CheckboxGroup, 有一个
.on_event 方法,该方法接受一个事件处理程序作为其唯一参数。对于
一个普通的 Button,这个处理程序被调用时没有参数。对于其他
带有 .on_event 的部件,处理程序会传递新的属性值。
def my_radio_handler(new):
print('Radio button option ' + str(new) + ' selected.')
radio_group = RadioGroup(labels=["Option 1", "Option 2", "Option 3"], active=0)
radio_group.on_event('button_click', my_radio_handler)
有关使用.on_event监视的属性的更多信息,请参阅bokeh.models下小部件的相应条目,位于参考指南中。