2016-03-26 13 views
1

Ich bin neu in Tkinter.
Und ich möchte wissen, gibt es eine Möglichkeit, einige benutzerdefinierte Ereignisse für Widgets zu fangen,
zum Beispiel catch on_packed Ereignis nach widget.pack() oder on_paint Ereignis für Canvas-Widget nach dem Zeichnen einiger Grafiken auf Leinwand, etc?Benutzerdefinierte Ereignisse in Tkinter

+0

Nun, abhängig von Ihrem Kontext: Angenommen, Sie haben ein Button Widget, das Sie drücken möchten, so dass ein cricle gezeichnet werden würde: In diesem Fall können Sie die Option 'command' hinzufügen um die Funktion aufzurufen. 'my_button = Tkinter.Button (text = 'Drück mich', command = draw_cricle_method)'. –

+0

Es tut mir leid, aber ich habe explizit erklärt, dass ich Ereignisse abfangen möchte, die nicht in der Standard-Ereignisliste von Button sind, zum Beispiel, wie kann ich gepacktes Ereignis abfangen? Sie haben über Click-Ereignis erzählt, das in der Ereignisliste des Button-Widgets ist. – namco

Antwort

0

Die von Ihnen beschriebenen Ereignisse existieren nicht. Sie können eine Widgets event_generate Methode verwenden, um eigene benutzerdefinierte Ereignisse zu erstellen, wenn Sie möchten. Damit könnten Sie eigene Widget-Klassen erstellen, die beliebige benutzerdefinierte Ereignisse ausgeben.

Im speziellen Fall von on_pack gibt es Ereignisse, die wahrscheinlich tun, was Sie auf einer abstrakteren Ebene wollen. Zum Beispiel gibt es Ereignisse, die ausgelöst werden, wenn ein Widget sichtbar wird, Größe ändert usw.

0

Die Liste der möglichen Ereignistypen ist weitaus umfangreicher als die wenigen, die Sie normalerweise in Beispiel verwenden, wie z. B. Taste, Schaltfläche, Bewegung und Mausrad. Hier ist ein partial list. Es scheint, dass das Packen ein Map-Ereignis generieren sollte.

Verwandte Themen