鏈接中的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的值?請解釋這些屬性的含義。 –
我應該在問題中提到的代碼之後加上你提到的代碼吧? –