ipywidgets dropdown-widgets: was ist das onchange-Ereignis?
Kann ich einen handler registrieren, der button.on_click in ipython notebook-widgets, aber ich weiß nicht, wie zu tun die selben für ein dropdown-widget
import ipywidgets as widgets
from IPython.display import display
def on_button_clicked(b):
print("Button clicked.")
button = widgets.Button(description="Click Me!")
display(button)
button.on_click(on_button_clicked)
Aber für
choose_task = widgets.Dropdown(
options=['Addition', 'Multiplication', 'Subtraction'],
value='Addition',
description='Task:',
)
scheint es nur
on_trait_change(...)
wenn ich einen handler registrieren, der mit dieser, kann ich es verwenden, um Zugriff auf den Wert des widget?
Ich habe schon Beispiele gesehen, mit der Hundeführer und der widget gehören zu einer Unterklasse, und der handler kann selbst nach innen schauen. Aber wenn ich don ' T wollen, verwenden Sie eine Unterklasse, wie der Hundeführer wissen, was widget war das Ziel der Veranstaltung.?
- haben Sie jemals herauszufinden, Ihre Selbstbeobachtung Frage?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwischen dieser link und die traitlet docs auf github und spielen nur herum, endlich fand ich dies:
Insgesamt sieht viel reicher als die veralteten Schnittstelle, aber es könnte definitiv noch mehr Beispiele.
Ich glaube, die Idee ist Merkmal Namen, z.B. Wert. Zum Beispiel:
SciPy 2015 Erweiterte Jupyter Video-Tutorial
[...]/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:13: DeprecationWarning: on_trait_change is deprecated in traitlets 4.1: use observe instead
aber wenn ich versuche überobserve
mein handler aufgerufen wird drei mal.Es alle zusammen
Inspiriert auf die vorherigen Antworten und lambda-Ausdrücke, die ich verwenden:
Ich bin damit einverstanden, dass die Ereignisbehandlung ist nicht so gründlich wie gewünscht würde: ich habe die Filterung der Ereignisse, wie Sie erhalten mehrere Ereignisse für eine typische dropdown ändern, wenn der index ändert, ändert sich der Wert, d.h., Veränderung['name'].
Mache ich die folgenden: