Comment connecter une variable à un widget d'entrée?
-
22-09-2019 - |
Question
Je suis en train d'associer une variable à un widget d'entrée Tkinter, de manière à:
-
Chaque fois que je change la valeur (le « contenu ») de l'entrée, principalement en tapant quelque chose en elle, la variable est automatiquement attribué la valeur de ce que j'ai tapé. Sans avoir à me appuyer sur un bouton « valeur de mise à jour » ou quelque chose comme ça en premier.
-
Chaque fois que la variable est changée (par une autre partie du programm), je veux que la valeur d'entrée affichée à régler automatiquement. Je crois que cela pourrait fonctionner via le textvariable.
Je lis l'exemple sur http://effbot.org/tkinterbook/entry.htm, mais il est pas exactement me aide pour ce que je pense. J'ai le sentiment qu'il ya un moyen d'assurer la première condition à l'utilisation de la « validation » de l'entrée. Toutes les idées?
La solution
Je pense que vous voulez quelque chose comme ça. Dans l'exemple ci-dessous, j'ai créé une myvar
variable et lui a assigné à la fois un textvariable
de widgets Label
et Entry
. De cette façon, les deux sont couplés et les changements dans le widget d'entrée reflète automatiquement dans l'étiquette.
Vous pouvez également mettre trace sur les variables, par exemple écrire à stdout.
from tkinter import *
root = Tk()
root.title("MyApp")
myvar = StringVar()
def mywarWritten(*args):
print "mywarWritten",myvar.get()
myvar.trace("w", mywarWritten)
label = Label(root, textvariable=myvar)
label.pack()
text_entry = Entry(root, textvariable=myvar)
text_entry.pack()
root.mainloop()