首页 > 解决方案 > 如何强制两个 jupyter 滑块相互交互(非常重要)?“标签”可用于处理程序吗?

问题描述

我想创建两个 ipywidget 滑块,一个值为 x,另一个值为 1-x。当我更改一个滑块时,另一个滑块应该会相应地自动更改。我正在尝试使用观察进行回调。我看到我可能会使用所有者和描述来识别修改了哪个滑块。但我不认为描述应该用于此目的。毕竟,描述首先不需要是唯一的。我想知道我是否在这里遗漏了什么。

from ipywidgets import widgets

x=0.5
a=widgets.FloatSlider(min=0,max=1,description='a',value=x)
b=widgets.FloatSlider(min=0,max=1,description='b',value=1-x)

display(a,b)
def on_value_change(change):
    if str(change['owner']).split("'")[1]=='a':
        exec('b.value='+str(1-change['new']))
    else:
        exec('a.value='+str(1-change['new']))

a.observe(on_value_change,names='value')
b.observe(on_value_change,names='value')

标签: sliderjupyteripywidgets

解决方案


推荐阅读