在未选择任何内容的情况下设置ipywidget选项

2024-10-01 15:48:14 发布

您现在位置:Python中文网/ 问答频道 /正文

当我想在ipywidget中设置没有选择的选项时,我只需执行以下操作:

import ipywidgets as w
w.Select(options=[1, 2], value=None)

ipywidget Select

如果我想在现有对象上设置新项目(未选择任何内容),该怎么办?我必须:

import ipywidgets as w
s = w.Select()
...
s.options = [1,2]
s.value = None

但是,如果注册了一个回调来接收关于值更改的通知,它将被调用两次:使用autoselected1,然后使用NoneNone可以很容易地捕获,但是1似乎是用户选择的有效值。这将是一个错误的回调,因为用户从未真正选择过它

有没有简单的办法


Tags: 项目对象用户importnone内容valueas
2条回答

看起来s.options = [None, 1, 2]已经足够好了。在前面添加None可以避免触发任何不需要的回调

现有的答案是可行的,但缺点是需要在选项中包含None。 但是,有一种解决办法,即在列表中只包含“有用”选项,设置后不选择任何选项:

import ipywidgets as w
s = w.Select()
...
s.unobserve(select_handler, names='value')
s.options = [1, 2]
s.value = None
s.observe(select_handler, names='value')

有关这方面的更多详细信息,请参见ipywidgetsissue #2230

相关问题 更多 >

    热门问题