【问题标题】:ipywidgets use checkbox to display or hide other widgetsipywidgets 使用复选框来显示或隐藏其他小部件
【发布时间】:2019-01-08 14:30:44
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python widget jupyter-notebook ipywidgets


    【解决方案1】:

    我不确定小部件是否有隐藏功能。一种方法是为您的小部件构造一个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)
    

    【讨论】:

    • 我终于发现了一种隐藏小部件的方法:widget.layout.display = 'none'
    猜你喜欢
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 2016-01-07
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多