Python 回调#

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

当 Bokeh Model上的某些属性发生更改时,将调用 Bokeh 的 Python 回调。事件处理程序的函数签名取决于它们如何附加到组件(例如,通过 .on_change.on_event)。

on_change 回调触发器#

例如,所有组件都有一个 .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 下的相应 Model,在参考指南中。

on_event 回调触发器#

此外,某些组件(包括ButtonDropdownCheckboxGroup)具有一个 .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 下组件的相应条目,在参考指南中。