【问题标题】:ipywidgets dropdown widgets: How to populate nested widgets based on selected dropdown option on onchange event?ipywidgets 下拉小部件:如何根据 onchange 事件上的选定下拉选项填充嵌套小部件?
【发布时间】:2021-08-27 19:52:14
【问题描述】:

我正在尝试构建一个从 json 解析数据并填充工具的小部件,基本表单可以包含简单的输入字段和下拉菜单选项。我想根据用户选择添加嵌套小部件,例如,如果用户想要一个高级参数并选择“完整参数”选项,它应该填充嵌套小部件(根据用户输入生成的小部件,即选定选项)

from IPython.display import display
from ipywidgets import Dropdown

def dropdown_eventhandler(change):
    print(change.new)

option_list = ("Full Perameter", "Default Perameter")
dropdown = Dropdown(description="Choose one:", options=option_list)
dropdown.observe(dropdown_eventhandler, names='value')
display(dropdown)

我尝试了几件事,但没有奏效。我尝试通过在回调函数上提供条件参数来调用底层小部件。

【问题讨论】:

    标签: jupyter-notebook ipython jupyter-lab ipywidgets jupyter-irkernel


    【解决方案1】:

    不确定我是否理解您想要的输出: 如果我理解正确,您希望根据外部下拉列表中选择的选项有两个嵌套下拉列表不同的选项。

    option_list = ["Full Parameter", "Default Parameter"]
    full_parameter = ['a', 'b', 'c']
    default_parameter = ['d', 'e', 'f']
    def option1(option_1):
        if option_1 == 'Full Parameter':
            def option2(option_2):
                print(option_2)
            wg.interact(option2, option_2=full_parameter)
        elif option_1 == 'Default Parameter':
            def option2(option_2):
                print(option_2)
            wg.interact(option2, option_2=default_parameter)
    wg.interact(option1, option_1=option_list)
    

    所以上面的代码基本上意味着你有 2 个下拉列表,第二个下拉列表中显示的选项取决于第一个下拉列表中选择的选项。如果您在第一个下拉菜单中选择“全参数”,则第二个下拉菜单中的选项为 a、b、c。如果选择“默认参数”,则第二个下拉菜单中的选项为 d、e、f。

    我是否正确理解了您的问题?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      • 1970-01-01
      相关资源
      最近更新 更多