Bokeh:如果触发另一个回调,则触发回调
Bokeh: trigger callback if another callback is triggered
我正在尝试为我的 Bokeh 应用程序制作一个基本的搜索工具。基本流程是:
用户在 TextInput 小部件中输入搜索词。
TextInput 值被传递给搜索函数,returns 的(元组)选项列表MultiSelect 小部件。
我 运行 我的应用程序使用本地服务器:
bokeh serve --show my_app
我无法通过回调更新我的 MultiSelect 选项。
def createtab_search():
# callback text_input
def callback_text_input(attr, old, new):
print("Previous label: " + old)
print("Updated label: " + new)
text_input = TextInput(value="search here", title="Search:")
text_input.on_change("value", callback_text_input)
# callback search results
def callback_search_result(attr,old,new):
search_results = search_function(text_input.value)
options = [(k,k) for k in search_results.items()]
multi_select.options = options
# results dropdown
multi_select = MultiSelect(title="Results:",
value=[],
options=[])
multi_select.on_change("options",callback_search_result)
# Layout setup
layout = column(text_input,multi_select)
#output tab
tab = Panel(child = layout, title = 'Search')
return tab
我通过从第一个回调中调用第二个回调解决了这个问题。因此,每当我更新 TextInput 中的搜索词时,都会调用搜索功能,并且 MultiSelect 小部件选项为 re-populated.
def createtab_search():
# callback text_input
def callback_text_input(attr, old, new):
callback_search_result(attr, old, new)
text_input = TextInput(value="search here", title="Search:")
text_input.on_change("value", callback_text_input)
# callback search results
def callback_search_result(attr,old,new):
search_results = search_function(text_input.value)
options = [(k,k) for k in search_results.items()]
multi_select.options = options
# results dropdown
multi_select = MultiSelect(title="Results:",
value=[],
options=[])
multi_select.on_change("options",callback_search_result)
# Layout setup
layout = column(text_input,multi_select)
#output tab
tab = Panel(child = layout, title = 'Search')
return tab
我正在尝试为我的 Bokeh 应用程序制作一个基本的搜索工具。基本流程是:
用户在 TextInput 小部件中输入搜索词。
TextInput 值被传递给搜索函数,returns 的(元组)选项列表MultiSelect 小部件。
我 运行 我的应用程序使用本地服务器:
bokeh serve --show my_app
我无法通过回调更新我的 MultiSelect 选项。
def createtab_search():
# callback text_input
def callback_text_input(attr, old, new):
print("Previous label: " + old)
print("Updated label: " + new)
text_input = TextInput(value="search here", title="Search:")
text_input.on_change("value", callback_text_input)
# callback search results
def callback_search_result(attr,old,new):
search_results = search_function(text_input.value)
options = [(k,k) for k in search_results.items()]
multi_select.options = options
# results dropdown
multi_select = MultiSelect(title="Results:",
value=[],
options=[])
multi_select.on_change("options",callback_search_result)
# Layout setup
layout = column(text_input,multi_select)
#output tab
tab = Panel(child = layout, title = 'Search')
return tab
我通过从第一个回调中调用第二个回调解决了这个问题。因此,每当我更新 TextInput 中的搜索词时,都会调用搜索功能,并且 MultiSelect 小部件选项为 re-populated.
def createtab_search():
# callback text_input
def callback_text_input(attr, old, new):
callback_search_result(attr, old, new)
text_input = TextInput(value="search here", title="Search:")
text_input.on_change("value", callback_text_input)
# callback search results
def callback_search_result(attr,old,new):
search_results = search_function(text_input.value)
options = [(k,k) for k in search_results.items()]
multi_select.options = options
# results dropdown
multi_select = MultiSelect(title="Results:",
value=[],
options=[])
multi_select.on_change("options",callback_search_result)
# Layout setup
layout = column(text_input,multi_select)
#output tab
tab = Panel(child = layout, title = 'Search')
return tab