JupyterLab ipywidget 关闭一个小部件并在单击按钮时显示另一个小部件

JupyterLab ipywidget close one widget and display another on button click

我是 Jupyterlab 和 ipywidget 的新手(可能缺少一些基础知识)。
这看起来很简单,但是我到处找了找也没有找到实现的方法。
我只需要在(小部件 A 的)按钮单击事件上关闭小部件 A 并显示小部件 B。
这就是我的 tried/need 简单来说。

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 上尝试此操作)。
提前致谢...

您可以将按钮包装在 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