Search code examples
pythontextwidgetvisibilitydropdown

ipywidget interactive hiding visibility


I would like to make an interactive module with ipywidgets. So far so good but I'm stuck. I want to hide the visibility of a certain ipywidget object dependent on a certain situation, and I want my printed text to show up above the widget and stay there.

dropdown=widgets.Dropdown(
    options={'Coffee machine': 1, 'Washing machine': 2, 'Water Heater': 3, 'Heating System': 4, 'Dryer': 5, 'Oven': 6, 'Microwave': 7, 'Other':8},
    value=1,
    description='Apparaat:',
    )
text_new=widgets.Text()
def text_field(value):
    if(value==8):
        display(text_new)
        text_new.on_submit(handle_submit)
    else:
        text_new.visible(False) #Doesn't work but I want something like this
print("Today you had an increase in electricity consumption, would you like to name this device?") #This just be above the dropdown menu and be stuck
i=widgets.interactive(text_field, value=dropdown)
display(i)

What this does now: When "Other" is checked in the dropdown menu, a text box appears where the user can type something. However, when checking another machine, the text box stays there. I just need a "hide" function but I can't seem to find one that works.

Also, after checking another option on the dropdown, the print dissapears, not coming back.


Solution

  • Had same problem so i found in

    boton.layout.visibility = 'hidden'
    

    or

    check.layout.display = 'none'
    

    they made some changes... i got if from here Cannot create a widget whose initial state is visible=False