Il valore corrente di alcuni widget (come la casella di introduzione
di testo) pu� essere connesso direttamente a variabili
dell'applicazione usando speciali opzioni. Queste opzioni sono
variable, textvariable, onvalue, offvalue
e value. Questo collegamento lavora in entrambe le direzioni:
se la variabile, per qualunque motivo, cambia, allora il widget
collegato verr� modificato per riflettere il nuovo valore.
Sfortunatamente nell'implementazione corrente di Tkinter
non � possibile passare una variabile Python arbitraria ad un widget
attraverso l'opzione variable o textvariable. L'unico
tipo di variabili che possono svolgere questo lavoro sono variabili
che derivano da una classe chiamata Variable, definita nel modulo
Tkinter.
Ci sono molte sottoclassi di Variable gi� definite: StringVar, IntVar, DoubleVar e BooleanVar. Per leggere il valore attuale di una tale variabile, chiamare il suo metodo get() e, per cambiarlo, il metodo set(). Se si segue questo protocollo il widget si adeguer� sempre al valore della variabile senza ulteriori interventi.
Per esempio:
class App(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.entrythingy = Entry()
self.entrythingy.pack()
self.button.pack()
# Qui c'� la variabile dell'applicazione
self.contents = StringVar()
# Le viene dato un qualche valore
self.contents.set("this is a variable")
# Si fa in maniera che il widget di immissione veda questa variabile
self.entrythingy["textvariable"] = self.contents
# e qui si mette la chiamata ad una funzione quando l'utente preme return.
# faremo in modo che il programma stampi il valore della
# variabile dell'applicazione quando l'utente preme return.
self.entrythingy.bind('<Key-Return>',
self.print_contents)
def print_contents(self, event):
print "Ciao. Il contenuto della casella di immissione ora � ---->", \
self.contents.get()
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.