【发布时间】:2021-01-14 11:06:23
【问题描述】:
当我想在 ipywidget 中设置选项而没有选择任何内容时,我会这样做:
import ipywidgets as w
w.Select(options=[1, 2], value=None)
如果我想在现有对象上设置新项目(没有选择任何内容)怎么办?我必须:
import ipywidgets as w
s = w.Select()
...
s.options = [1,2]
s.value = None
但是如果注册了一个回调来接收值更改的通知,它将被调用两次:自动选择1,然后使用None。 None 很容易被捕获,但 1 似乎是用户选择的有效值。那将是一个错误的回调,因为用户从未真正选择它。
有没有简单的解决方法?
【问题讨论】:
-
我刚试过这个,如果没有选择任何值,而你设置了
s.options = [1,2],那么仍然没有选择任何选项。您能否只观察一个打印参数的简单函数,然后将您看到的内容添加到您的问题中?编辑:我现在看到,它确实选择了 1,您需要一次性更改选项和值。 -
@ac24 我怎样才能在一个声明中做到这一点..?
-
我刚刚尝试使用
with widg.hold_trait_notifications():上下文管理器,但出现了一些奇怪的行为,认为这里可能存在错误
标签: python callback jupyter-notebook traits ipywidgets