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

Jupyter 7.1.2中clear_output()失效问题求助

解决Jupyter 7.1.2中ipywidgets按钮点击无响应的问题

问题原因

Jupyter 7.x版本对输出管理机制做了调整,原代码中clear_output的默认行为不再适配新的输出上下文,导致调用page_2()后的内容无法正确渲染。

解决办法

方法1:使用Output对象包裹输出(推荐)

通过widgets.Output创建固定的输出容器,确保页面切换时输出上下文稳定。修改后的代码如下:

import ipywidgets as widgets
from IPython.display import display, clear_output

def page_1():
    # 创建输出容器
    out = widgets.Output()
    with out:
        button = widgets.Button(description="Next")
        def next_button_clicked(b):
            with out:
                clear_output(wait=True)
                page_2()
        button.on_click(next_button_clicked)
        display(button)
    # 带display_id输出容器,确保后续更新生效
    display(out, display_id='page_container')

def page_2():
    text = widgets.HTML(value='<h2 style="text-align:center">HELLO</h2>')
    display(text)

page_1()

方法2:指定clear_output的target参数

如果不想大改代码,给clear_output明确指定target='current'参数,适配Jupyter 7.x的输出上下文规则:

import ipywidgets as widgets
from IPython.display import display, clear_output

def page_1():
    button = widgets.Button(description="Next")
    def next_button_clicked(b):
        # 指定target为当前输出上下文
        clear_output(wait=True, target='current')
        page_2()
    button.on_click(next_button_clicked)
    display(button)

def page_2():
    text = widgets.HTML(value='<h2 style="text-align:center">HELLO</h2>')
    display(text)

page_1()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:46:09