ipywidgets использует флажок для отображения или скрытия других виджетов

Я использую 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)
Другие вопросы по тегам