私はtkinterを使ってクイズを作成し、小さな問題に遭遇しました。最初の質問の回答を選択して送信をクリックした後、同じラジオボタンがすでに次の質問の前の質問から選択されています。とにかくページをリフレッシュして、次の質問に対して選択された回答がないようにしていますか?ラジオボタンの選択をリフレッシュ
画像には、最初の質問に対して選択された回答が表示されます。提出クリックしたあとの
、同じラジオボタンの選択は、すでに選択されています。
var = IntVar()
ans1 = Radiobutton(root, text=answer1[count], variable=var, value=1,
command=sel)
ans2 = Radiobutton(root, text=answer2[count], variable=var, value=2,
command=sel)
ans3 = Radiobutton(root, text=answer3[count], variable=var, value=3,
command=sel)
ans4 = Radiobutton(root, text=answer4[count], variable=var, value=4,
command=sel)
ans1.pack()
ans2.pack()
ans3.pack()
ans4.pack()
def out():
global QuestionNo,correct,incorrect,s,count
global ans1, ans3, ans3 ,ans4, correctans
# count = count + 1
answer = (ans1 or ans2 or ans3 or ans4(var.get()))
print (question[QuestionNo])
# print (answer[count])
if count != 3:
if answer == correctans :
count = count + 1
QuestionNo = QuestionNo + 1
# entry.delete(0, END)
correct = correct + 1
label.config(text = question[QuestionNo])
else:
QuestionNo = QuestionNo + 1
count = count + 1
# entry.delete(0, END)
incorrect = incorrect + 1
label.config(text = question[QuestionNo])
# answer.delete(0, END)
elif count == 3:
# entry.delete(0, END)
label.config(text = "Correct: "+str(correct) + " Incorrect: "+str(incorrect))
ans1.configure(text=str(answer1[count]))
ans2.configure(text=str(answer2[count]))
ans3.configure(text=str(answer3[count]))
ans4.configure(text=str(answer4[count]))
button = tk.Button(root,text = "Submit",command = out)
button.pack()
は 'var.set(0)'を使用します。ところで、あなたはむしろ 'answer = var.get()'が必要です。 'answer1 [count]'がテキストの場合、 'str()'を使う必要はありません – furas
BTW:コードを読みやすくする 'root = Tk()'の前にすべての関数を入れてください。 – furas
、 furas –