EXPLICATION LIGNE DE CODE
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
A voir également:
- EXPLICATION LIGNE DE CODE
- Code ascii - Guide
- Partage de photos en ligne - Guide
- Code de déverrouillage oublié - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
3 réponses
Bonjour chlochlo,
Déjà, ce code ne fonctionne pas:
On ne peut pas passer d'arguments à une fonction callback d'un widget
il faut passer par une fonction lambda
Une fois que c'est corrigé, ça fonctionne:

Ceci dit ca affiche 7 caractère au lieu de 6, car on ajoute 1 au compteur:
Je ne sais pas pourquoi...
Déjà, ce code ne fonctionne pas:
bouton_compteur=Button(fenetre,text="calculer le nombre de caracteres",command=change_texte(entree.get()))
On ne peut pas passer d'arguments à une fonction callback d'un widget
il faut passer par une fonction lambda
Une fois que c'est corrigé, ça fonctionne:
Ceci dit ca affiche 7 caractère au lieu de 6, car on ajoute 1 au compteur:
return compteur+1
Je ne sais pas pourquoi...
Apres, sur l'aspect présentation, c'est bien de mettre d'abord les définitions de fonctions puis
le programme principal : création de la fenêtre et des widgets:
le programme principal : création de la fenêtre et des widgets:
# -*- coding:Latin-1 -*- from tkinter import* def calcul_caracteres(texte): compteur=0 for i in range(len(texte)): compteur+=1 return compteur def change_texte(texte): texte_compteur.set(str(calcul_caracteres(texte))) fenetre=Tk() texte_entree=Label(fenetre,text="entrez un texte") texte_entree.grid(row=0,column=0) entree=Entry(fenetre,width=50) entree.grid(row=5,column=0) texte_compteur=StringVar() texte_compteur.set("0") label_compteur=Label(fenetre,textvariable=texte_compteur) label_compteur.grid(row=10,column=5) bouton_compteur=Button(fenetre,text="calculer le nombre de caracteres",command=lambda:change_texte(entree.get())) bouton_compteur.grid(row=5,column=5) label_texte=Label(fenetre,text="Votre texte contient") label_texte.grid(row=10,column=4) label_texte2=Label(fenetre,text="caracteres") label_texte2.grid(row=10,column=6) fenetre.mainloop()