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
