You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IPython Widget设置Continuous_Update=False后如何首次自动运行?

解决方法

要实现「滑块仅在释放鼠标时执行」和「Widget首次显示自动运行一次」两个需求,按以下步骤修改代码即可:

1. 为滑块关闭实时更新

找到interactive生成的滑块控件,设置continuous_update=False,避免拖拽过程中频繁触发函数:

# 遍历所有控件,为滑块设置关闭实时更新
for child in i_obj.children[:-1]:
    if isinstance(child, widgets.FloatSlider):
        child.continuous_update = False

也可以单独指定每个滑块:

# 分别给三个滑块设置关闭实时更新
i_obj.children[0].continuous_update = False  # start_secs滑块
i_obj.children[1].continuous_update = False  # resolution滑块
i_obj.children[2].continuous_update = False  # duration滑块

2. 让Widget首次加载自动运行

在调用display()之后,直接调用一次动画函数animate_music(),它会使用函数定义的默认参数执行:

# 首次加载时自动执行一次动画
animate_music()

修改后的完整代码

from ipywidgets import interactive,  widgets, HBox, VBox, Layout
import traceback

stereo_song_amp_wav, stereo_song_amp_aac, song_rate, song_duration = make_test_song(time_per_note=1)


def animate_music(start_secs=0, resolution=0.25, duration=5):
    global stereo_song_amp_wav, stereo_song_amp_aac, song_rate, song_duration
    s = stereo_song_amp_aac[round(start_secs*song_rate):round((start_secs + duration)*song_rate),:]
    try:
      display_animation_fast([s], song_rate, view_window_secs=resolution, start_time_offset=start_secs)
    except:
      traceback.print_exc()
    return None

i_obj = interactive(animate_music, start_secs=(0, song_duration, 0.25), resolution=(0.05,1.0,0.05), duration=(0.25, song_duration, 0.25))

# 设置滑块关闭实时更新
for child in i_obj.children[:-1]:
    if isinstance(child, widgets.FloatSlider):
        child.continuous_update = False

output = i_obj.children[-1]

h_layout = Layout(display='flex', flex_flow='row', justify_content='center', width='100%')
v_layout = Layout(display='flex', flex_flow='column',justify_content='center', width='100%')

i_obj.children[0].layout.width = '95%'
controls = VBox([i_obj.children[0], HBox(i_obj.children[1:-1], layout = h_layout)], layout =v_layout)
display(VBox([controls, output], layout = v_layout))

# 首次加载自动执行动画
animate_music()

内容的提问来源于stack exchange,提问作者user3735204

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 05:22:03