Maison > développement back-end > Tutoriel Python > Pourquoi la commande de mon bouton s'exécute-t-elle immédiatement au lieu d'un clic ?

Pourquoi la commande de mon bouton s'exécute-t-elle immédiatement au lieu d'un clic ?

Susan Sarandon
Libérer: 2024-12-27 12:09:11
original
192 Les gens l'ont consulté

Why Does My Button's Command Execute Immediately Instead of on Click?

Pourquoi la commande de mon bouton s'exécute-t-elle immédiatement après la création ?

Question :

Dans le code fourni, un bouton est créé et son option de commande est définie sur un appel de fonction avec un argument. Cependant, le bouton imprime l'argument et une autre chaîne immédiatement après sa création et ne répond pas aux clics. Pourquoi cela se produit-il ?

Réponse :

Le code fourni transmet le résultat du bouton d'appel de fonction('hey') directement à l'option de commande. Cela provoque l'exécution immédiate de la fonction, plutôt que lorsque vous cliquez sur le bouton.

Pour résoudre ce problème, la bonne façon de transmettre une fonction en tant que commande est d'utiliser son nom sans parenthèses ni arguments. Par exemple :

b = Button(admin, text='as', command=button)
Copier après la connexion

Cependant, pour passer un argument à une fonction, vous pouvez utiliser une fonction lambda, qui est une fonction anonyme qui renvoie une référence à elle-même :

b = Button(admin, text='as', command=lambda: button('hey'))
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal