首页 > 解决方案 > ipywidgets 使用复选框来显示或隐藏其他小部件

问题描述

我正在使用ipywidgets创建一个简短的表单,显示两个字段,即图像的预期宽度和高度。

我想添加一个复选框,以便如果选中该框,则从文件中加载信息。

如果选中该框,则应出现一个文本区域(或文件选择器),并有一个加载文件的按钮读取它并填充文本框。

我应该通过观​​察复选框事件来做到这一点吗?有没有办法隐藏一个小部件?

标签: pythonwidgetjupyter-notebookipywidgets

解决方案


我不确定小部件是否有隐藏功能。一种方法是VBox为您的小部件构造一个,并将小部件添加为子级。然后创建一个函数/方法,将其子项重新分配VBox给您要显示的小部件。

from ipywidgets import Checkbox, VBox

cb1 = Checkbox(description='1')
cb2 = Checkbox(description='2')
cb3 = Checkbox(description='3')

vb = VBox(children = [cb1, cb2, cb3])
top_toggle = Checkbox(description='Remove 3')

def remove_3(button):
    if button['new']:
        vb.children = [cb1, cb2]
    else:
        vb.children = [cb1, cb2, cb3]

top_toggle.observe(remove_3, names='value')
display(top_toggle)
display(vb)

推荐阅读