Я не очень хорош в tkinter или даже в python, поэтому столкнулся с тем, что должно быть простой проблемой.
У меня есть что-то вроде этого в середине моего проекта:
visible = numLevels * [IntVar(value=1)]
top = Toplevel()
settingslabel = Label(top, text='Settings', height=0, width=100)
for i in range(0, numLevels ):
check = ttk.Checkbutton(settingslabel, text='Level ' + str(i), variable=visible[i])
check.grid(column = 0, row = i)
check.var = visible[i]
settingslabel.grid(column = 0, row=0)
Я хочу иметь экран настроек с флажком для каждого уровня, сохраняя при этом массив целых чисел, которые представляют состояние каждой кнопки.
Однако все флажки синхронизированы.То есть, когда я отмечаю флажок, все остальные флажки также становятся отмеченными.Я полагаю, что это связано с полем «переменная» кнопки.Поскольку цикл продолжается, я обновляюсь, и в результате видимый [i] также изменяется.Я хочу сохранить переменную при создании кнопки.Я не понимаю, как tkinter / python работают достаточно хорошо, чтобы знать.
Число уровней может быть любым целым числом> 0 и определяется во время выполнения, поэтому я не могу просто развернуть цикл.
Есть ли лучший способ сделать это?Заранее спасибо.