我在 IPython 中使用小部件,它允许用户重复搜索短语并在另一个小部件(选择小部件)中查看结果(不同的标题),然后选择其中一个结果。
简而言之:
search_text = widgets.Text(description = 'Search')
search_result = widgets.Select(description = 'Select table')
def search_action(sender):
phrase = search_text.value
df = search(phrase) # A function that returns the results in a pandas df
titles = df['title'].tolist()
search_result.options = titles
search_text.on_submit(search_action)
这曾经可以正常工作,但是在更新到最新版本的 ipywidgets(从 4.0.1 到 5.1.3)之后,它似乎
search_selection.options = titles
产生以下错误(一个或两个,它会有所不同):
TraitError: Invalid selection
TypeError: 'list' object is not callable
它仍然有效,因为小部件根据来自其他小部件的搜索结果更新,但它给出了错误。
根据另一个小部件的结果在一个小部件中设置选项的正确方法是什么?
(编辑:添加了更详细的错误消息)