当前位置:  开发笔记 > 编程语言 > 正文

ipywidgets下拉小部件:onchange事件是什么?

如何解决《ipywidgets下拉小部件:onchange事件是什么?》经验,为你挑选了1个好方法。

我可以在ipython notebook小部件中向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来内省.但是如果我不想使用子类,那么处理程序如何知道哪个小部件是事件的目标.



1> sfjac..:

在这个链接和github上的traitlet文档之间,只是在玩游戏,我终于弄明白了:

w = widgets.Dropdown(
    options=['Addition', 'Multiplication', 'Subtraction'],
    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)

总体而言,这看起来比不赞成使用的界面更丰富,但它绝对可以使用更多示例.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有