Obtenir le contenu d'une Entry en cours de saisie dans Tkinter ?
Bonjour,
Tout est dans le titre et l'exemple qui pose problème :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| from tkinter import *
import time
root = Tk()
def test(event):
print(event.widget.get())
ent = Entry(root)
ent.pack()
ent.bind("<Key>", test)
root.mainloop() |
Ceci n'est qu'un exemple, peu importe l'objectif du script.
Sujet déjà abordé ici :
https://stackoverflow.com/questions/...-to-solve-this
https://stackoverflow.com/questions/...s-out-of-order
Y a t il de meilleurs alternatives à celles proposées sur stackoverflow ou à celles-ci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| from tkinter import *
import time
root = Tk()
def test(event,toto=False):
if not toto:
event.widget.after(50, test, event, True)
return
print(event.widget.get())
ent = Entry(root)
ent.pack()
ent.bind("<Key>", test)
root.mainloop() |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| from tkinter import *
import time, threading
root = Tk()
def go_to_test(event):
threading.Thread(target=test,args=(event,)).start()
def test(event):
time.sleep(0.05)
print(event.widget.get())
ent = Entry(root)
ent.pack()
ent.bind("<Key>", go_to_test)
root.mainloop() |
J'ai compris qu'il y avait une histoire de hiérarchie, j'ai essayé les méthodes à bases de bindclass sans comprendre comment ça marchait ni réussir d'ailleurs.
Merci d'avance !