Python 回调函数#

Python回调(有时也称为事件处理器)是你可以附加到小部件的Python函数。你只能在Bokeh服务器应用中使用这些回调。对于不需要Bokeh服务器的交互式回调,请参见JavaScript回调

当Bokeh的Model上的某些属性发生变化时,会调用Bokeh的Python回调函数。事件处理程序的函数签名由它们如何附加到小部件(例如通过.on_change.on_event)决定。

on_change 回调触发器#

所有的widgets,例如,都有一个 .on_change 方法,该方法接受一个属性名称和一个或多个事件 处理程序作为参数。这些处理程序应具有函数 签名,(attr, old, new),其中 attr 指的是更改的 属性的名称,而 oldnew 指的是属性的先前和更新后的 值。

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下小部件的相应条目,位于参考指南中。