gpt4 book ai didi

python - 链接 ipython 小部件下拉列表和 slider 值

转载 作者:太空宇宙 更新时间:2023-11-04 10:06:04 24 4
gpt4 key购买 nike

我“理解”如何将文本框链接到 slider (“理解”是指如何使其工作):

from traitlets import link

a = widgets.FloatText(value=4.)
b = widgets.FloatSlider(min=3,max=7,step=0.23,value=4.)
display(a,b)

mylink = link((a, 'value'), (b, 'value'))

结果是这样的:

linking widgets

但有什么方法可以链接下拉框,其值为 list_items = ('case1', 'case2', 'case3')FloatSlider ,其中相应的值将是例如(3.4, 5.4, 6.7)

最佳答案

是的,你可以。

使用directional_link

link 功能将同一类型的两个特征联系在一起。如果您需要对其中一个特征应用转换,您应该使用 directional_link:

from ipywidgets import Dropdown, FloatSlider
from traitlets import directional_link
from IPython.display import display

a= Dropdown(options=['case1', 'case2', 'case3'])
b= FloatSlider(min=3, max=7, step=0.23, value=4)

def transform(case):
return {'case1': 3.4, 'case2': 5.4, 'case3': 6.7}[case]

directional_link((a, 'value'), (b, 'value'), transform)

display(a, b)

请注意,这只有一种方式,a --> b,因此更新下拉列表会更新 slider ,但不会反过来。如果您希望双向链接,则必须使用另一个 directional_link:

directional_link((b, 'value'), (a, 'value'), inverse_transform)

使用观察

observe 是监听小部件特征变化的标准方法。如果您想触发比仅链接两个特征更复杂的行为,这是要走的路。

在你的例子中:

def update_slider(change):
b.value = {'case1': 3.4, 'case2': 5.4, 'case3': 6.7}[a.value]

a.observe(update_slider, names='value')

再一次,这只是一种方式 (a --> b)。观察 b 中的变化,使链接成为双向的

关于python - 链接 ipython 小部件下拉列表和 slider 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40952166/

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