2009-06-04 18 views
-1

Ich verwende Tkinter in Python und möchte ein Ereignis zu einem Eintrag Widget hinzufügen. Ich möchte es warten auf Text eingegeben werden und dann die Aktion ausführen, wenn Text eingegeben wird.Ereignis bei Eingabe von Text eingeben

etwas in der Art von:

self.entry(command=self.event) 

ist es dies trotzdem zu tun?

+0

Können Sie klären Ihre Frage? Möchten Sie, dass bei jedem Tastendruck etwas passiert, nur wenn der Benutzer die Eingabetaste drückt, wenn der Fokus das Widget verlässt oder etwas anderes? All das ist möglich, wir müssen nur wissen, was Sie wirklich wollen. –

+0

Bitte klären Sie Ihre Frage, bevor es geschlossen ist ... !!!! Machen Sie sich klar, was Sie wollen und sprechen Sie nicht in maskierten Ausdrücken. Erzählen Sie genau, was Ihre Anforderungen sind und welche Hausaufgaben Sie gemacht haben. – IcyFlame

Antwort

1

Sie haben nicht angegeben, wie Sie entscheiden, dass der Benutzer die Eingabe beendet hat. Sie können:

  • Verwenden Timeout - überprüfen, wie viel Zeit zwischen zwei Buchstaben und Prozesseingang passiert hat, wenn die Verzögerung länger als, sagen wir 3 Sekunden. Ihr typischer Benutzer wird diese Lösung nicht mögen, aber es scheint, dass Sie das suchen. Die Art und Weise, dies zu tun:

    1. "definieren" Ihr StringVar: s = Tkinter.StringVar(root)
    2. assign callback zum Schreiben auf Ihre StringVar: s.trace('w', handle_input)
    3. Griff Verzögerung Prüfung und nützlichen Code in Ihrem handle_input Rückruf
    4. beim Erstellen Eingabe-Widget, geben Sie Ihre StringVar als Textvariable ein: e = Tkinter.Entry(root, textvariable=s)
  • Verwenden Schlüssel eingeben, wenn fertig eingeben - bind"<Enter>" Ereignis Eintrag widget:

    e.bind('<Enter>', handle_input) 
    
Verwandte Themen