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

Jupyter Notebook添加Dropdown组件后实现Run All时暂停等待选择

Jupyter Notebook 实现Dropdown选择后继续执行Run All的方案

核心实现思路

使用ipywidgets库的下拉选择(Dropdown)和确认按钮组件,通过状态标记+事件回调机制,让程序在执行Run All时暂停在交互步骤,直到用户完成选择并确认后,再自动继续执行后续代码。

完整可行代码示例

首先确保安装并启用ipywidgets:

# 安装库
pip install ipywidgets
# Jupyter Notebook 启用扩展(旧版本需要)
jupyter nbextension enable --py widgetsnbextension
# Jupyter Lab 启用扩展
jupyter labextension install @jupyter-widgets/jupyterlab-manager

然后在Notebook中执行以下代码:

import ipywidgets as widgets
from IPython.display import display
import time

# 创建下拉选择组件
dropdown = widgets.Dropdown(
    options=['选项1', '选项2', '选项3'],
    value=None,  # 默认未选择任何选项
    description='选择项:',
    disabled=False,
)

# 创建确认按钮
confirm_btn = widgets.Button(
    description='确认选择',
    disabled=True,  # 未选择时按钮不可用
    button_style='success',
    tooltip='点击确认后继续执行',
    icon='check'
)

# 全局状态变量,控制程序暂停/继续
is_confirmed = False
selected_value = None

# Dropdown选择事件:选中后启用确认按钮
def on_dropdown_change(change):
    global selected_value
    selected_value = change['new']
    confirm_btn.disabled = False

# 确认按钮点击事件:标记确认状态,禁用组件防止重复操作
def on_confirm_click(b):
    global is_confirmed
    is_confirmed = True
    confirm_btn.disabled = True
    dropdown.disabled = True

# 绑定事件回调
dropdown.observe(on_dropdown_change, names='value')
confirm_btn.on_click(on_confirm_click)

# 渲染交互组件
display(dropdown, confirm_btn)

# 暂停程序,等待用户确认
print("请选择选项并点击确认按钮...")
while not is_confirmed:
    time.sleep(0.5)  # 降低CPU占用

# ------------------- 后续执行代码 -------------------
print(f"你选择的内容是: {selected_value}")
print("开始执行后续业务逻辑...")
# 在这里添加你的后续代码

为什么之前的while+input方案无效

input()是从Jupyter的后端控制台读取输入,而Dropdown是前端交互组件,两者的交互通道相互独立,无法实现联动等待。上述方案通过前端组件的事件回调更新Python端的状态标记,再通过循环等待状态变更,实现了前端交互与后端代码执行的同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:55:13