Récupérer du texte à partir d'un champ de saisie sur tkinter
Résolu
Bonjour,
Ce problème n'est pas sans solution sur internet, qui exigent la création d'une nouvelle classe. Cependant, je ne peux pas le faire à cause d'une contrainte.
J'ai passé beaucoup de temps à essayer différentes solutions, mais malheureusement je suis bloqué.
je vous fourni le code ainsi que son résultat.
En espérant que quelqu'un pourra m'aider.
(le temps me fait défaut et donc je m'en remets à vous)

Ce problème n'est pas sans solution sur internet, qui exigent la création d'une nouvelle classe. Cependant, je ne peux pas le faire à cause d'une contrainte.
J'ai passé beaucoup de temps à essayer différentes solutions, mais malheureusement je suis bloqué.
je vous fourni le code ainsi que son résultat.
En espérant que quelqu'un pourra m'aider.
(le temps me fait défaut et donc je m'en remets à vous)


Configuration: Windows / Opera 82.0.4227.50
A voir également:
- Récupérer du texte à partir d'un champ de saisie sur tkinter
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment récupérer un compte facebook piraté - Guide
- Comment recuperer une video sur youtube - Guide
- Convertisseur récupération de texte - Guide
1 réponse
Bonjour,
Merci de copier coller ton texte en le mettant en forme avec les balises de code plutôt que d'utiliser une capture d'écran, ce sera plus pratique pour tout le monde et plus écologique.
Explication rapide
Tu confonds dans ton code deux étapes :
Explication détaillée
Généralement, on aura effectivement à faire une classe pour une fenêtre, et cet objet contient les éléments contenus dans cette fenêtre, mais ça n'est pas obligatoire.
L'exemple "calculator" proposé dans ce lien montre comment faire :
Que fait ce programme ?
Note que toutes ces variables sont déclarées en dehors d'une classe, ce qui montre bien que ça n'est pas indispensable (même si je ne vois pas trop pourquoi tu ne pourrais pas utiliser une classe dans ton cas, mais peu importe).
Tu vois donc que la déclaration de la fenêtre à proprement parler (le programme principal) et le traitement qui est fait (la callback
Bonne chance
Merci de copier coller ton texte en le mettant en forme avec les balises de code plutôt que d'utiliser une capture d'écran, ce sera plus pratique pour tout le monde et plus écologique.
Explication rapide
Tu confonds dans ton code deux étapes :
- celle où tu places les éléments dans ta fenêtre (par exemple, les champs texte, les boutons...)
- et celle où tu traites les données saisies (suite à un événement, par exemple, quand tu cliques sur un bouton ou quand tu appuies sur une touche de clavier).
Explication détaillée
Généralement, on aura effectivement à faire une classe pour une fenêtre, et cet objet contient les éléments contenus dans cette fenêtre, mais ça n'est pas obligatoire.
L'exemple "calculator" proposé dans ce lien montre comment faire :
#!/usr/bin/env python3 import tkinter as tk from math import * def evaluate(event): res.configure(text = "Result: " + str(eval(entry.get()))) w = tk.Tk() tk.Label(w, text="Your Expression:").pack() entry = tk.Entry(w) entry.bind("<Return>", evaluate) entry.pack() res = tk.Label(w) res.pack() w.mainloop()
Que fait ce programme ?
- On commence par créer une fenêtre
w
, dans laquelle on installe un texte (tk.Label
) et un champ (tk.Entry
) pour saisir une valeur. - Ensuite, à l'aide de la méthode
bind
, on indique que la fonctionevaluate
doit être appelée à chaque fois que l'utilisateur appuie sur la touche Entrée. - Puis on crée dans
w
un champ texteres
dont le contenu sera corrigé par la fonctionevaluate
. La fonctionevaluate
est appelée callback, car elle est passée en paramètre d'une autre fonction (en l'occurrence,bind
). - Enfin, Une fois que le comportement complet de la fenêtre est spécifié, on lance le programme a proprement parler avec
w.mainloop()
.
Note que toutes ces variables sont déclarées en dehors d'une classe, ce qui montre bien que ça n'est pas indispensable (même si je ne vois pas trop pourquoi tu ne pourrais pas utiliser une classe dans ton cas, mais peu importe).
Tu vois donc que la déclaration de la fenêtre à proprement parler (le programme principal) et le traitement qui est fait (la callback
evaluate) sont donc séparés. Cette distinction est incontournable, et comme elle n'est pas faite dans le bout de code que tu as partagé, c'est pour cela que ce dernier ne marche pas.
Bonne chance