链接中的0.12.1的正式文档给出下面的代码来创建下拉菜单。如何在散景python中捕获下拉小部件的值?
但它并没有明确提及如何捕捉下拉列表控件的值,当有人点击并选择从下拉菜单中的值。
from bokeh.io import output_file, show
from bokeh.layouts import widgetbox
from bokeh.models.widgets import Dropdown
output_file("dropdown.html")
menu = [("Item 1", "item_1"), ("Item 2", "item_2"), None, ("Item 3", "item_3")]
dropdown = Dropdown(label="Dropdown button", button_type="warning", menu=menu)
show(widgetbox(dropdown))
问题
是看到有2种方法被称为on_click()& on_change(),但是从文档无法弄清楚如何捕捉值。 我们如何将选定的值分配给新的变量?
EDIT
基于输入从@Ascurion我已经更新我的代码如下所示。但是,当我在下拉列表中选择一个值时,在Spyder中的ipython控制台中不会显示任何内容。 请指教。
from bokeh.io import output_file, show
from bokeh.layouts import widgetbox
from bokeh.models.widgets import Dropdown
output_file("dropdown.html")
menu = [("Item 1", "item_1"), ("Item 2", "item_2"), None, ("Item 3", "item_3")]
dropdown = Dropdown(label="Dropdown button", button_type="warning", menu=menu)
def function_to_call(attr, old, new):
print dropdown.value
dropdown.on_change('value', function_to_call)
dropdown.on_click(function_to_call)
show(widgetbox(dropdown))
感谢。我收到下面的错误。 dropdown.on_change('value',function_to_call(attr,old,new)) NameError:name'attr'未定义 –
当调用function_to_call()时,应传递attr,old,new的值?请解释这些属性的含义。 –
我应该在问题中提到的代码之后加上你提到的代码吧? –