Domanda

Sto cercando di associare una variabile con un widget Tkinter ingresso, in un modo che:

  1. Ogni volta che cambio il valore (il "contenuto") della voce, soprattutto digitando qualcosa in esso, la variabile automaticamente viene assegnato il valore di ciò che ho scritto. Senza di me dover premere un pulsante "value Update" o qualcosa di simile prima.

  2. Ogni volta che la variabile viene cambiato (da qualche altra parte del programma), voglio che il valore della voce visualizzata venga regolato automaticamente. Credo che questo potrebbe funzionare tramite il textvariable.

ho letto l'esempio a http://effbot.org/tkinterbook/entry.htm, ma non è esattamente quello che mi sta aiutando a che ho in mente. Ho la sensazione che ci sia un modo per garantire la prima condizione con l'utilizzo della voce "validate". Tutte le idee?

È stato utile?

Soluzione

Penso che si desidera qualcosa di simile. Nell'esempio qui sotto, ho creato un myvar variabile e assegnato ad essere textvariable sia un Label e widget Entry. In questo modo entrambi sono accoppiati e cambiamenti nel widget Entry rifletterà automaticamente in etichetta.

Puoi anche impostare traccia sulle variabili, per esempio di scrivere sullo standard output.

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()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top