ipywidgets IntSlider 的自定义格式

Custom formatting for ipywidgets IntSlider

我正在处理交互式图表。其中一个选项是select一个房子的房间数。现在,如果您在 n_rooms 参数中输入任何大于 5 的数字,该图表将始终显示拥有 5 个或更多房间的房屋的数据。所以我构建了这个

n_rooms = widgets.IntSlider(
    min=1,
    max=5,
    description='number of rooms:',
    layout=Layout(width='30%'),
    style=style,
    disabled=False)

事实是,这将显示一个从 1 到 5 的滑块。我唯一想更改的是它显示的不是“5”,而是“5 或更多”。有什么办法吗? 谢谢

使用 selection slider 在滑块中使用整数和字符串。

num_rooms = widgets.SelectionSlider(
options=['1', '2', '3', '4', '5 or more'],
value='1',
description='number of rooms:',
disabled=False,
continuous_update=False,
orientation='horizontal',
readout=True   )

在我的例子中(主要显示科学数据)定义一个 Text 小部件并将其与滑块一起使用会很有帮助。您只需设置 readout=False 并使用 HBox。例如,我在 intensities:

中存储了一些场强
fs = IntSlider(
        description='fs: ',
        value=0, min=0, max=len(ints)-1,
        readout=False
    )
fs_text = Text(value=f'{ints[0]:.1f}V/nm', description='', layout=Layout(width='80px'))

# ...
# do some updates
# ...

HBox([fs, fs_text])

在这种情况下,您可以在更新函数中随意使用 Text 的文本。