2017-01-17 19 views
0

私はtkinterを使ってクイズを作成し、小さな問題に遭遇しました。最初の質問の回答を選択して送信をクリックした後、同じラジオボタンがすでに次の質問の前の質問から選択されています。とにかくページをリフレッシュして、次の質問に対して選択された回答がないようにしていますか?ラジオボタンの選択をリフレッシュ

画像には、最初の質問に対して選択された回答が表示されます。提出クリックしたあとの

The image shows an answer being selected for the first question.

、同じラジオボタンの選択は、すでに選択されています。

after having clicked submit, the same radio button choice is already selected.

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

は 'var.set(0)'を使用します。ところで、あなたはむしろ 'answer = var.get()'が必要です。 'answer1 [count]'がテキストの場合、 'str()'を使う必要はありません – furas

+0

BTW:コードを読みやすくする 'root = Tk()'の前にすべての関数を入れてください。 – furas

+0

、 furas –

答えて

0

選択をリセットするためにvar.set(0)を使用してください。

0

異なる質問ページのラジオボタンには、varを使用しましたか?ページ1にはvar1を使用し、ページ2にはvar2を使用して持ち越さないようにすることができます。

関連する問題