【问题标题】:JupyterLab ipywidget close one widget and display another on button clickJupyterLab ipywidget 关闭一个小部件并在按钮单击时显示另一个
【发布时间】:2021-12-15 14:02:20
【问题描述】:

我是 Jupyterlab 和 ipywidget 的新手(可能缺少一些基础知识)。
这似乎很简单,但我到处搜索,找不到这样做的方法。
我只需要关闭小部件 A 并在按钮单击事件(小部件 A)上显示小部件 B。
简单来说,这就是我尝试过/需要的。

import ipywidgets
from IPython.display import display

buttonA_widget = ipywidgets.Button(description='Button A')
buttonB_widget = ipywidgets.Button(description='Button B')

display(buttonA_widget)

def switchMode(x):
    buttonA_widget.close()
    display(buttonB_widget)

buttonA_widget.on_click(switchMode)


当我在上面尝试时,buttonA 消失了,但第二次显示调用没有被执行
而且我没有收到任何错误消息(在 Jetson Nano 上尝试此操作)。
提前致谢...

【问题讨论】:

    标签: python jupyter-lab ipywidgets


    【解决方案1】:

    您可以将按钮包装在 Output 小部件中,并在需要时将其清除:

    import ipywidgets
    from IPython.display import display
    
    buttonA_widget = ipywidgets.Button(description='Button A')
    buttonB_widget = ipywidgets.Button(description='Button B')
    
    out = ipywidgets.Output()
    
    with out:
        display(buttonA_widget)
    
    
    def switchMode(x):
        out.clear_output()
        with out:
            display(buttonB_widget)
    
    
    buttonA_widget.on_click(switchMode)
    out
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多