Entrée et sortie d'un Tkinter

Kranenoeil Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
 gudu -
Bonjour,

Je souhaite créer un Tkinter simple avec un champ permettant de rentrer une phrase, que celle ci passe dans ma focntion et que le résultat soit affiché dessous.

Cependant je n'arrive pas à le faire marcher et je ne sais pas si c'est l'entrée ou la sortie (ou les deux) qui ne marchent pas. Je précise que le fonctionne marche très bien avec un input en entrée et un print en sortie. Le voici :

import tkinter as tk

root = tk.Tk()

value = tk.StringVar()

entree = tk.Entry(root, textvariable=value, width=30)
entree.pack()

label_value = tk.Label(root, textvariable=f)
label_value.pack()

def traduire() :
global value
global f
dictionary = {}
with open("fichier.txt", "r") as f:
for line in f:
word, word_trad = line.rstrip('\n').split('=')
if word not in dictionary:
dictionary[word] = word_trad

s=value
words = s.split()

res = words[:]

for ind, word in enumerate(words):
if word in dictionary:
res[ind] = dictionary[word]

f=' '.join(res)


bouton_afficher = tk.Button(root, text="Afficher", command=traduire)
bouton_afficher.pack()

bouton_quitter = tk.Button(root, text="Quitter", command= root.destroy)
bouton_quitter.pack()


root.mainloop()



La fonction traduire permet de prendre une phrase en langage sms et de le ressortir en bon français avec l'aide d'un fichier texte.

Ce que je cherche dans ce tkinter est simple : une entrée (ici "entree") où je marque la phrase à traduire. Le bouton "Afficher" qui execute la fonction avec la phrase présente dans l'entrée et un champ qui m'affiche le résultat.

Merci d'avance !
A voir également:

1 réponse

gudu
 
Le message est pourtant clair.

NameError: name 'f' is not defined

Ensuite :

s=value
words = s.split()

res = words[:] # Que fait ceci ?


s est donc un stringvar et non str, tu ne peux donc utiliser dessus les méthodes de str.

pareil plus loin sur ta variable f qui doit être un stringvar.
0