首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ipywidgets jslink -非直接映射

ipywidgets jslink -非直接映射
EN

Stack Overflow用户
提问于 2022-05-24 05:09:45
回答 1查看 145关注 0票数 0
代码语言:javascript
运行
复制
import ipywidgets as widgets
from IPython.display import display

slider = widgets.IntSlider(min=0, max=100, step=1, description='Age:', value = 0)
agelabel = widgets.Label(value = '0')

mylink = widgets.jslink((slider, 'value'), (agelabel, 'value'))
display(slider, agelabel)

在导入后的前两行中,我们创建了一个选择年龄的滑块和一个显示消息的标签。此代码按预期工作,并在我们移动它时在标签中显示滑块的值。

现在,我们不需要显示滑块中的直接值,而是要在标签Your selected age : 12中显示,甚至要应用一些逻辑You may not order alcoholic drinks at 12

本质上是获得回调,但不受这些控件( value )的映射属性(((slider, 'value'), (agelabel, 'value')))的限制。

EN

回答 1

Stack Overflow用户

发布于 2022-05-24 06:41:35

我找到了一个解决方案,尽管不是通过jslink。许多小部件,包括IntSlider,公开了接受回调函数的observe。每次改变滑块时,都会调用回调函数。

代码语言:javascript
运行
复制
# mylink = widgets.jslink((slider, 'value'), (lblSlider, 'value'))

def showmsg(caller):
    lblSlider.value = f'Your age is {caller.new}'

slider.observe(showmsg, names='value')

在这种方法中,我们不需要使用jslink链接。还请注意,names in observe,用于指定何时调用处理程序。请看一下文件串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72357455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档