Appeler la même fonction en cliquant sur le Bouton et en appuyant sur entrée
J'ai une interface graphique qui a Entry
widget et soumettre Button
.
Je suis en fait, d'essayer d'utiliser get()
et imprimer les valeurs qui sont à l'intérieur de la Entry
widget. Je voulais le faire en cliquant sur le soumettre Button
ou en appuyant sur entrer ou retour sur le clavier.
J'ai essayé de lier la "<Return>"
événement avec la même fonction qui est appelée lorsque j'appuie sur le Bouton envoyer:
self.bind("<Return>", self.enterSubmit)
Mais j'ai une erreur:
besoin de 2 arguments
Mais self.enterSubmit
fonction n'accepte qu'un seul, puisque pour la command
option de la Button
est nécessaire qu'une seule.
Pour résoudre ce problème, j'ai essayé de créer 2 fonctions avec les mêmes fonctionnalités, ils ne diffèrent que par le nombre d'arguments.
Est-il un moyen plus efficace de résoudre ce problème?
OriginalL'auteur user2498110 | 2013-07-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez créer une fonction qui prend un nombre quelconque d'arguments comme cela:
Il s'agit d'une arbitraire de la liste d'arguments. L'appelant est libre de passer en autant d'arguments qu'ils le souhaitent, et ils vont tous être mis dans le
args
tuple. L'Entrée de la liaison peut passer dans ses 1event
objet, puis cliquez sur la commande passe pas d'arguments.Ici est un minimum de Tkinter exemple:
Résultat, après avoir appuyé sur
Enter
et en cliquant sur le bouton:Si vous êtes réticents à changer la signature de la fonction de rappel, vous pouvez enrouler la fonction que vous souhaitez lier à un
lambda
expression, et jeter le solde non utilisé de la variable:OriginalL'auteur Kevin
Vous pouvez également affecter une valeur par défaut (par exemple
None
) pour le paramètreevent
. Par exemple:OriginalL'auteur nbro