ipywidgets:确定正在观察哪个小部件
ipywidgets: identify which widget is being observed
我需要创建数量可变的小部件,然后确定当用户与其中一个小部件交互时正在观察哪个小部件。在以下示例中,正在创建 n IntSliders
:
import ipywidgets as wg
def obs(change):
print(change)
def fun(n):
l = []
for i in range(n):
l.append(wg.IntSlider())
l[i].observe(obs, names='value')
display(wg.VBox(l))
fun(4)
与其中一个滑块交互时,change
变量仅给出 owner、old、new、type 和 name。
{'owner': IntSlider(value=1), 'new': 1, 'old': 0, 'type': 'change', 'name': 'value'}
我想 "tweak" change
的内容包括它在列表中的位置 l.
注意: 我不能使用现有的 IntSlider
属性,例如 description,因为那样它会反映在小部件外观中。
this issue中给出了解决方案。
我需要创建数量可变的小部件,然后确定当用户与其中一个小部件交互时正在观察哪个小部件。在以下示例中,正在创建 n IntSliders
:
import ipywidgets as wg
def obs(change):
print(change)
def fun(n):
l = []
for i in range(n):
l.append(wg.IntSlider())
l[i].observe(obs, names='value')
display(wg.VBox(l))
fun(4)
与其中一个滑块交互时,change
变量仅给出 owner、old、new、type 和 name。
{'owner': IntSlider(value=1), 'new': 1, 'old': 0, 'type': 'change', 'name': 'value'}
我想 "tweak" change
的内容包括它在列表中的位置 l.
注意: 我不能使用现有的 IntSlider
属性,例如 description,因为那样它会反映在小部件外观中。
this issue中给出了解决方案。