Question

Je suis en train d'associer une variable à un widget d'entrée Tkinter, de manière à:

  1. 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.

  2. 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?

Était-ce utile?

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()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top