Попробуйте это
import tkinter as tk
main = tk.Tk()
info = ["Option 1", "Option 2","Option 3", "Option 4"]
vars = []
for idx,i in enumerate(info):
var = tk.IntVar(value=0)
vars.append(var)
btn = tk.Checkbutton(main, text=i, var = var)
btn.grid(column=idx%2,row=idx//2)
main.mainloop()
Я добавил перечисление в цикл for, чтобы каждому элементу было присвоено число idx
, т. Е. 0,1,2,3 и т. Д.
Я также использовал несколько простых вычислений для позиционирования каждого флажка, исходя из предположения, что вы хотите, чтобы в каждом ряду было два флажка, используя операторы деления на модуль и целочисленное значение.
Учитывая ваши комментарии к моему первоначальному ответу, я подозреваю, что вы хотитеиспользуйте переключатели вместо кнопок проверки. Они поддерживают возможность включения только одного из них одновременно. Смотрите пример ниже, чтобы узнать, как этого добиться. Радиокнопки поддерживают сохранение другого значения в IntVar в зависимости от того, какое из них выбрано, и снимет флажок, если выбрано другое.
import tkinter as tk
main = tk.Tk()
info = ["Option 1", "Option 2","Option 3", "Option 4"]
vars = []
for idx,i in enumerate(info):
var = tk.IntVar(value=0)
vars.append(var)
lblOption = tk.Label(main,text=i)
btnYes = tk.Radiobutton(main, text="Yes", variable=var, value=1)
btnNo = tk.Radiobutton(main, text="No", variable=var, value=0)
lblOption.grid(column=0,row=idx)
btnYes.grid(column=1,row=idx)
btnNo.grid(column=2,row=idx)
main.mainloop()