How do I create multiple checkboxes from a list in a for loop in python tkinter How do I create multiple checkboxes from a list in a for loop in python tkinter tkinter tkinter

How do I create multiple checkboxes from a list in a for loop in python tkinter


The "variable" passed to each checkbutton must be an instance of Tkinter Variable - as it is, it is just the value "0" that is passed, and this causes the missbehavior.

You can create the Tkinter.Variable instances on he same for loop you create the checkbuttons - just change your code to:

for machine in enable:    enable[machine] = Variable()    l = Checkbutton(self.root, text=machine, variable=enable[machine])    l.pack()self.root.mainloop()

You can then check the state of each checkbox using its get method as inenable["ID1050"].get()


Just thought I'd share my example for a list instead of a dictionary:

from Tkinter import *root = Tk()    users = [['Anne', 'password1', ['friend1', 'friend2', 'friend3']], ['Bea', 'password2', ['friend1', 'friend2', 'friend3']], ['Chris', 'password1', ['friend1', 'friend2', 'friend3']]]for x in range(len(users)):    l = Checkbutton(root, text=users[x][0], variable=users[x])    print "l = Checkbutton(root, text=" + str(users[x][0]) + ", variable=" + str(users[x])    l.pack(anchor = 'w')root.mainloop()

Hope it helps