Как исправить нажатие кнопки в ipywidgets? - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть следующий код в jupyter noteboook с ipywidgets 7.5.1, который является маской входа

from ipywidgets import widgets

class Login:
    def __init__(self):
        text21 = widgets.Text(description="username")   
        text22 = widgets.Text(description = "password")
        self.button = widgets.Button(
            description='Login NSG',
            disabled=False,
            button_style='info', 
            tooltip='Login with username and password',            
        )        
        self.vbox_conf = widgets.VBox(children=[text21, text22, self.button])             
        self.button.observe(self.login) 
        # alternative: self.button.observe(self.login, names='value') 
        display(self.vbox_conf)            

    def login(self, args):
        print("test")
        print(args)    

login = Login()

Он отображает маску входа, но когда я нажимаю кнопку, ничего не происходит! Ничего не распечатывается, ни в блокноте, ни в окне журнала!

Что происходит и как это исправить?

1 Ответ

0 голосов
/ 10 февраля 2020

Решение: вы должны использовать метод on_click для обработки нажатия кнопки

  self.button.on_click(self.login) 

Это недокументированная функция (или, по крайней мере, очень трудно найти в неполной и вводящей в заблуждение документации ).

...