Хотя это не указано OP, если вы делаете викторину с несколькими вариантами, также может потребоваться, чтобы определенные вопросы имели определенные флажки, которые были бы взаимоисключающими. Или, попросите пользователя выбрать не более M из N флажков и это требование конкретно указано в вопросе, чтобы пользователь понял шаблон дизайна. Для этого вы можете воспользоваться возможностью обратного вызова Checkbuttons:
from Tkinter import *
master = Tk()
choices = [IntVar() for x in range(4)]
now = None
buttons = None
def cb():
global now, buttons
if None != now:
buttons[now].deselect()
vals = [choices[i].get() for i in range(4)]
try: now = vals.index(1)
except ValueError: now = None
print "variables are",str([choices[i].get() for i in range(4)])
buttons = [Checkbutton(master, text="Choice "+str(i), variable=choices[i], command=cb) for i in range(4)]
for b in buttons: b.pack()
mainloop()
Этот пример отвечает ФОС конкретный вопрос, но может быть расширен на законных сделать изменения в работе флажков в конкретных ситуациях.
Любые причины, по которым вы не хотите использовать радиообъективы? –
@BhajunSingh - избили меня :( –