Tengo una lista de longitud variable y quiero crear una casilla de verificación (con Python TKinter) para cada entrada en la lista (cada entrada corresponde a una máquina que debe activarse o desactivarse con la casilla de verificación -> cambiar el valor en el diccionario).Cómo creo varias casillas de verificación de una lista en un ciclo for en python tkinter
print enable
{'ID1050': 0, 'ID1106': 0, 'ID1104': 0, 'ID1102': 0}
(ejemplo, puede ser de cualquier longitud)
ahora el código relevante:
for machine in enable:
l = Checkbutton(self.root, text=machine, variable=enable[machine])
l.pack()
self.root.mainloop()
Este código produce 4 casillas de verificación pero todos ellos son ya sea marcada o sin marcar juntos y los valores de la enable
dict no cambian. ¿Cómo resolver? (Creo que el l
no funciona, pero ¿cómo hacer esta variable?)
¡Gracias! Las casillas de verificación funcionan ahora, solo una pregunta: ¿cómo puedo leer las variables fuera de la clase tkinter (lo tengo configurado como en: http://stackoverflow.com/a/1835036/1102225). Intenté todo. Cuando uso 'print enable [machine] .get() AttributeError: el objeto 'int' no tiene ningún atributo 'get'' Así que probé: ' print app.enable [máquina] .get() AttributeError:' MyTkApp 'objeto no tiene atributo' enable'' (aplicación es el objeto de la clase tkinter llama MyTkApp) Y cuando lo hago sin el get: habilitar 'impresión [máquina] PY_VAR0' – Sebastian
Oh lo tengo yo! He incluido una función en la clase tkinter para devolver el valor: 'def leer (sí, la máquina): \t retorno permiten [máquina] .get()' luego fuera de la clase se puede, por ejemplo, simplemente llame a: ' imprima la aplicación.read (1050) ' – Sebastian