создать обработчик наблюдения для нескольких ipywidgets - PullRequest
1 голос
/ 09 марта 2020

Я должен создать коллекцию кнопок динамически на основе списков слов. Я создаю их с классом. Затем я должен динамически увидеть, сколько из них нажал пользователь, и действовать соответствующим образом (получить коллекцию нажатых кнопок на столбец).

Моя проблема заключается в том, как обращаться с обработчиками событий. Я не могу придумать, как коллективно справляться со всеми созданными кнопками. Мне в основном нужен слушатель, который каждый раз, когда происходит изменение, смотрит, сколько кнопок нажимается, и, конечно, нажимаю и отжимаю соответствующие кнопки.

Это мой код:

class verticalButtons():

def __init__(self,concepts):
    self.verticalbuttons = self.create_buttons(concepts)

def create_buttons(self,concepts):
    import ipywidgets
    wd_buttons = []
    for i,concept in enumerate(concepts):
        newbutton = ipywidgets.Button(description=concept,
                                     button_style='success')
        wd_buttons.append(newbutton)

    verticalbox = VBox(wd_buttons)
    return verticalbox

в основном Передача списка слов в класс создает VBox с кнопками.

mylist1 = ['1first','1second','1third']
mylist2 = ['2first','2second','2third','2fourth']
one = verticalButtons(mylist1)
two = verticalButtons(mylist2)
button_columns = widgets.HBox([one.verticalbuttons,two.verticalbuttons])
display(button_columns)

результат будет следующим: enter image description here

Какая идея? Мне даже не нужен код, а просто идея, как с ним бороться.

спасибо.

...