我有以下场景,我想用on_change
执行一个函数:
def update_func:
calling_widget = < I need the name of the widget here: "SelectorWidget" >
do_something
SelectorWidget = MultiSelect(title="A widget", value = "default", options = option_list)
SelectorWidget.on_change('value', update_func)
相同的update_func
将在不同的小部件上使用,我希望每次都能获得触发该功能的Widget的名称。
有什么想法吗?
答案 0 :(得分:1)
尝试:
from functools import partial
# add a widget arg to standard callback signature
def update_func(attr, old, new, widget):
# do something with widget
SelectorWidget = MultiSelect(title="A widget",
value="default",
options=option_list)
# use partial to make a callback callable with widget arg bound
SelectorWidget.on_change('value',
partial(update_func, widget=SelectorWidget))