Pregunta

Estoy tratando de asociar una variable con un widget de entrada Tkinter, de una manera que:

  1. Cada vez que cambia el valor (el "contenido") de la entrada, sobre todo escribiendo algo en él, la variable automáticamente se le asigna el valor de lo que ha escrito. Sin que tenga que pulsar un botón "Actualizar el valor" o algo por el estilo en primer lugar.

  2. Siempre que la variable se cambia (por alguna otra parte de la Programm), quiero que el valor de la entrada representada se ajuste automáticamente. Creo que esto podría funcionar a través de la textVariable.

Me lee el ejemplo http://effbot.org/tkinterbook/entry.htm, pero no me está ayudando exactamente para lo que tengo en mente. Tengo la sensación de que hay una manera de asegurar la primera condición con el uso de "validación" de entrada. Algunas ideas?

¿Fue útil?

Solución

Creo que quieres algo como esto. En el siguiente ejemplo, he creado un myvar variable y asigné a ser textvariable tanto de un Label y los widgets Entry. De esta manera tanto están acoplados y los cambios en la entrada widget reflejará automáticamente en la etiqueta.

También puede conjunto rastro en las variables, por ejemplo, Para escribir en la salida estándar.

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()
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top