Как создать несколько флажков из списка в цикле for в python tkinter

У меня есть список переменной длины и вы хотите создать флажок (с python TKinter) для каждой записи в списке (каждая запись соответствует машине, которая должна быть включена или выключена с помощью флажка -> изменить значение в словаре) ,

print enable {'ID1050': 0, 'ID1106': 0, 'ID1104': 0, 'ID1102': 0} 

(например, может быть любая длина)

теперь соответствующий код:

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

Этот код создает 4 флажка, но все они либо отмечены галочкой, либо не связаны друг с другом, а значения в тике enable не изменяются. Как решить? (Я думаю, что l не работает, но как сделать эту переменную?)

2 Solutions collect form web for “Как создать несколько флажков из списка в цикле for в python tkinter”

«Переменная», передаваемая каждой контрольной кнопке, должна быть экземпляром Tkinter Variable – как есть, это только значение «0», которое передается, и это вызывает missbehavior.

Вы можете создавать экземпляры Tkinter.Variable на том же самом для цикла, который вы создаете checkbuttons – просто измените свой код на:

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

Затем вы можете проверить состояние каждого флажка, используя метод get как в enable["ID1050"].get()

Просто подумал, что я поделюсь своим примером для списка вместо словаря:

 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() 

Надеюсь, поможет

  • Tkinter GUI не в нужном месте
  • Просмотр файла или каталога Диалог в Python
  • Python re "ложная ошибка выхода"
  • номера сортировки python ttk treeview
  • Проблемы с прозрачностью Tkinter
  • Использование клиента python websocket с tkinter
  • Как центрировать окно tkinter и сохранить поведение «подходит для детей»?
  • Индикатор выполнения TTK блокируется при отправке электронной почты
  • Python - лучший язык программирования в мире.