J'essaie d'utiliser le widget Entry de Tkinter. Je n'arrive pas à faire quelque chose de très basique: retourner la valeur entrée.
Quelqu'un a-t-il une idée de la raison pour laquelle un script aussi simple ne retournerait rien? J'ai essayé des tonnes de combinaisons et j'ai regardé différentes idées.
Ce script exécute mais n'imprime pas l'entrée:Python Tkinter Entrée get()
from Tkinter import *
root = Tk()
E1 = Entry(root)
E1.pack()
entry = E1.get()
root.mainloop()
print "Entered text:", entry
semble si simple.
Éditer: Si quelqu'un d'autre rencontre ce problème et ne comprend pas, voici ce qui a fini par travailler pour moi. J'ai ajouté un bouton à la fenêtre d'entrée. La commande du bouton ferme la fenêtre et fait la fonction get():
from Tkinter import *
def close_window():
global entry
entry = E.get()
root.destroy()
root = Tk()
E = tk.Entry(root)
E.pack(anchor = CENTER)
B = Button(root, text = "OK", command = close_window)
B.pack(anchor = S)
root.mainloop()
Et cela a renvoyé la valeur désirée.
'get()' est appelée avant tout texte est saisi. Donc 'entry' est une chaîne vide (change' entry' en 'repr (entrée)' dans la dernière ligne et vous verrez ça). Si vous voulez appeler 'get()' quand un texte est entré (vous le faites probablement), vous devez lier 'get()' à un événement. – gil
Et le 'print' n'arrivera pas parce que vous avez une boucle infinie avant (le' root.mainloop() '). – TigerhawkT3