相关疑难解决方法(0)

ipywidgets:根据另一个部件的结果更新一个部件

我在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)
Run Code Online (Sandbox Code Playgroud)

这曾经可以正常工作,但是在更新到最新版本的ipywidgets(4.0.1的5.1.3)之后,

search_selection.options = titles
Run Code Online (Sandbox Code Playgroud)

产生以下错误(一个或两个,不同):

TraitError: Invalid selection
TypeError: 'list' object is not callable
Run Code Online (Sandbox Code Playgroud)

它仍然可以在某种意义上起作用,即该小部件会根据来自其他小部件的搜索结果来更新结果,但是会出现错误。

根据另一个窗口小部件的结果在一个窗口小部件中设置选项的正确方法是什么?

(编辑:添加了更详细的错误消息)

python widget ipython ipywidgets

6
推荐指数
2
解决办法
6740
查看次数

标签 统计

ipython ×1

ipywidgets ×1

python ×1

widget ×1