Apr-15-2020, 04:25 AM
All,
I just started using ipywidgets and I am trying to find the ropes, so if this question has been answered previously or the documentation covers it in some way, kindly point me to that section. Essentially, here is a miniature version of the UI I am trying to develop. The question that has got me perplexed is, once I construct a UI like shown below, and the user provides their input, how do I unload the input ? I am hoping to collect values for each of the variables and trigger my logic, but the only thing I see in the documentation talks about using either interact or interactive. However I am not really sure how to use them with multiple widgets, all the examples I have come across seem to point to using them with a single widget. If anyone could point me to a good resource or provide a sample, that would be helpful.
With that classifier, here is what I am trying to do:
I just started using ipywidgets and I am trying to find the ropes, so if this question has been answered previously or the documentation covers it in some way, kindly point me to that section. Essentially, here is a miniature version of the UI I am trying to develop. The question that has got me perplexed is, once I construct a UI like shown below, and the user provides their input, how do I unload the input ? I am hoping to collect values for each of the variables and trigger my logic, but the only thing I see in the documentation talks about using either interact or interactive. However I am not really sure how to use them with multiple widgets, all the examples I have come across seem to point to using them with a single widget. If anyone could point me to a good resource or provide a sample, that would be helpful.
With that classifier, here is what I am trying to do:
style = {'description_width': 'initial'} def input_tab(tab_list, tab_names_list): if len(tab_list) == len(tab_names_list): this_tab = Tab() this_tab.children = tab_list [this_tab.set_title(i, title) for i, title in enumerate(tab_names_list)] return this_tab else: raise ValueError('\n Input lists should be of the same size') def get_input_panel_num(): input_1 = widgets.Text(value='3000', description='Input-1', style=style) input_2 = widgets.Dropdown(options=['yes', 'no'], description='Select one', value='yes', disabled=False, style=style) input_3 = widgets.IntSlider(value=0, min=0, max=1, step=1, description='Input-3', orientation='horizontal', readout=True, style=style) input_list_num = [input_1, input_2, input_3] return input_list_num def get_input_panel_char(): input_a = widgets.Text(value='3000', description='Input-1', style=style) input_b = widgets.Dropdown(options=['yes', 'no'], description='Select one', value='yes', disabled=False, style=style) input_c = widgets.IntSlider(value=0, min=0, max=1, step=1, description='Input-3', orientation='horizontal', readout=True, style=style) input_list_char = [input_a, input_b, input_c] return input_list_char def create_master_tab(): tab_names = ["tab-1", "tab-2"] panel_num = VBox(get_input_panel_num()) panel_char = VBox(get_input_panel_char()) final = input_tab(tab_list=[panel_num, panel_char], tab_names_list=tab_names) return final demo = create_master_tab() demo