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下的相应模型。
on_event
回调触发器#
此外,某些小部件(包括按钮、下拉菜单和复选框组)具有一个.on_event
方法,该方法只接受一个事件处理程序作为参数。对于普通按钮
,此处理程序在没有参数的情况下被调用。对于其他具有.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下小部件的相应条目。