Ho una lista di lunghezza variabile e voglio creare una checkbox (con python TKinter) per ogni voce nella lista (ogni voce corrisponde ad una macchina che dovrebbe essere attivato o disattivato con la casella di controllo -> modifica del valore nel dizionario).Come creare più checkbox da un elenco in un ciclo for in python tkinter
print enable
{'ID1050': 0, 'ID1106': 0, 'ID1104': 0, 'ID1102': 0}
(esempio, può essere di qualsiasi lunghezza)
ora il codice rilevante:
for machine in enable:
l = Checkbutton(self.root, text=machine, variable=enable[machine])
l.pack()
self.root.mainloop()
Questo codice produce 4 caselle ma sono tutti sia selezionata o deselezionata insieme ei valori nella enable
dict non cambia. Come risolvere? (Credo che il l
non funziona, ma come fare questo una variabile?)
Grazie! Le caselle di controllo ora funzionano, solo una domanda: come posso leggere le variabili al di fuori della classe tkinter (l'ho configurato come in: http://stackoverflow.com/a/1835036/1102225). Ho provato di tutto. Quando utilizzo 'print enable [machine] .get() AttributeError: 'oggetto' int 'non ha attributo' get'' Quindi ho provato: ' print app.enable [machine] .get() AttributeError: 'MyTkApp 'oggetto non ha attributo' abilita'' (l'app è l'oggetto della classe tkinter chiamata MyTkApp) E quando lo faccio senza ottenere: 'abilita stampa [macchina] PY_VAR0' – Sebastian
Oh ce l'ho fatta io! Ho incluso una funzione nella classe tkinter per restituire il valore: 'def read (auto, macchina): \t return enable [machine] .get() ' quindi al di fuori della classe è possibile ad esempio solo chiamare: ' stampa app.read (1050) ' – Sebastian