EXPLICATION LIGNE DE CODE
Résolu/Fermé
A voir également:
- EXPLICATION LIGNE DE CODE
- Partage de photos en ligne - Guide
- Code ascii de a - Guide
- Site de vente en ligne particulier - Guide
- Code puk bloqué - Guide
- Code de déverrouillage oublié - Guide
3 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 27 mai 2021 à 11:03
Modifié le 27 mai 2021 à 11:03
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...
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
27 mai 2021 à 11:11
27 mai 2021 à 11:11
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()
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
27 mai 2021 à 13:58
27 mai 2021 à 13:58
En fait, dans ma 2ème réponse, j'ai corrigé la ligne du bouton...