Python 回调#
Python 回调(有时也称为事件处理程序)是可以附加到组件的 Python 函数。您只能在Bokeh 服务器应用程序中使用这些回调。对于不需要 Bokeh 服务器的交互式回调,请参阅JavaScript 回调。
当 Bokeh Model
上的某些属性发生更改时,将调用 Bokeh 的 Python 回调。事件处理程序的函数签名取决于它们如何附加到组件(例如,通过 .on_change
或 .on_event
)。
on_change
回调触发器#
例如,所有组件都有一个 .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 下的相应 Model,在参考指南中。
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 下组件的相应条目,在参考指南中。