Rufen Sie die gleiche Funktion beim klicken auf die Schaltfläche, und drücken Sie die EINGABETASTE
Habe ich eine GUI, die hat Entry
widget und einen submit -Button
.
Ich bin im Grunde versucht, zu verwenden get()
und drucken der Werte, die innerhalb der Entry
widget. Ich wollte dies tun, indem Sie auf die Einreichen Button
oder durch drücken geben Sie oder zurück auf der Tastatur.
Habe ich versucht zu binden, die "<Return>"
Ereignis mit der gleichen Funktion, die aufgerufen wird, wenn ich drücken Sie die Schaltfläche "submit":
self.bind("<Return>", self.enterSubmit)
Aber ich bekam eine Fehlermeldung:
benötigt 2 Argumente
Aber self.enterSubmit
Funktion akzeptiert nur eine, da für die command
Möglichkeit, die Button
ist erforderlich nur eine.
Um dieses Problem zu lösen, habe ich versucht zu erstellen 2 Funktionen mit identischen Funktionalitäten, die Sie gerade haben unterschiedliche Anzahl von Argumenten.
Ist es ein effizienter Weg, dies zu lösen?
InformationsquelleAutor user2498110 | 2013-07-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine Funktion erstellen, nimmt sich eine beliebige Anzahl von Argumenten wie diesem:
Dies nennt man eine beliebige Liste von Argumenten. Der Anrufer ist frei, pass in so vielen Argumenten, wie Sie wollen, und Sie alle werden verpackt in der
args
Tupel. Die Enter-Bindung kann passieren in seinem 1event
- Objekt, und klicken Sie auf den Befehl übergeben, in der keine Argumente.Hier ist eine minimale Tkinter Beispiel:
Ergebnis, nach dem drücken
Enter
und klicken auf die Schaltfläche:Wenn Sie nicht dazu bereit sind, ändern Sie die Signatur der callback-Funktion, Sie können wickeln Sie die Funktion, die Sie binden möchten in einem
lambda
Ausdruck, und verwerfen die nicht verwendete variable:InformationsquelleAutor Kevin
Könnten Sie auch zuweisen einen Standardwert (z.B.
None
) für den parameterevent
. Zum Beispiel:InformationsquelleAutor nbro