gpt4 book ai didi

jupyter-notebook - ipywidgets 下拉小部件 : what is the onchange event?

转载 作者:行者123 更新时间:2023-12-03 15:13:12 26 4
gpt4 key购买 nike

我可以在 ipython 笔记本小部件中向 button.on_click 注册处理程序,但我不知道如何为下拉小部件执行相同操作

import ipywidgets as widgets
from IPython.display import display

def on_button_clicked(b):
print("Button clicked.")

button = widgets.Button(description="Click Me!")
display(button)

button.on_click(on_button_clicked)

但对于
choose_task = widgets.Dropdown(
options=['Addition', 'Multiplication', 'Subtraction'],
value='Addition',
description='Task:',
)

似乎只有
on_trait_change(...)

如果我用这个注册一个处理程序,我可以用它来访问小部件的值吗?
我已经看到了处理程序的示例,并且小部件属于子类,并且处理程序可以使用 self 进行自省(introspection)。但是如果我不想使用子类,处理程序如何知道事件的目标是哪个小部件?

最佳答案

之间 this linkthe traitlet docs on github只是在玩,我终于想通了:

w = widgets.Dropdown(
options=['Addition', 'Multiplication', 'Subtraction', 'Division'],
value='Addition',
description='Task:',
)

def on_change(change):
if change['type'] == 'change' and change['name'] == 'value':
print("changed to %s" % change['new'])

w.observe(on_change)

display(w)
总的来说,这看起来比不推荐使用的接口(interface)丰富得多,但它肯定可以使用更多示例。

关于jupyter-notebook - ipywidgets 下拉小部件 : what is the onchange event?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34020789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com