2017-09-23 90 views
-1

我目前正在研究A-Level計算機科學課程,並且直接出門,我遇到了一些問題。計劃它有一個與其他多種功能的測驗,但是我不能在開發過程中繼續進行下去,直到我能夠得到問題的工作,他們將被單選按鈕的使用回答,但是當我嘗試檢索已選定(即使它是正確的)單選框我得到的價值是PY_VAR0而非實際值無法從單選按鈕檢索價值

def gettingDecision(): 
    var.get() 
    if var == 'True': 
     messagebox.showinfo('Congrats', message='You Are Correct') 
    else: 
     messagebox.showinfo('Lose', message='You Are Wrong.') 

def ques1(): 
    root = Tk() 
    window = Toplevel(root) 
    Question1 = Label(window, text='Q.1.What data type is a whole number?') 
    Question1.grid(row=1, column=0) 

    Q1A = Radiobutton(window, text='[A] Str', variable=var, value='False1') 
    Q1A.grid(row=2, column=0) 

    Q1B = Radiobutton(window, text='[B] Float', variable=var, value='False2') 
    Q1B.grid(row=3, column=0) 

    Q1C = Radiobutton(window, text='[C] Int', variable=var, value='True') 
    Q1C.grid(row=4, column=0) 

    Q1D = Radiobutton(window, text='[D] Char', variable=var, value='False3') 
    Q1D.grid(row=5, column=0) 

    submit = Button(window, text='Submit', command=gettingDecision) 
    submit.grid() 

我知道,要解決這個問題可能很簡單,但我只是不能得到它出於某種原因,我也看過這裏的帖子尋求解決方案,但我無法找到解決辦法。對不起,造成不便,但我真的需要知道如何獲得價值以取得任何進展。 (我會改變我的代碼是如何在稍後使用類的結構,但現在我只需要這個工作)。

+1

您是否嘗試過尋找這個網站'PY_VAR0'? –

回答

1

幾件事情:所述Tutorials Point documentation for RadioButton說:

如果控制變量是一個IntVar,得到 組中的每個單選按鈕不同的整數值

其次,這種不能工作:

var.get() 
if var == 'True': 

你真的想:

if var.get() == ... 

返工,和簡化,你的榜樣的:

from tkinter import * 
from tkinter import messagebox # has to be explicitly imported 

def checkDecision(): 
    if var.get() == answer: 
     messagebox.showinfo('Congrats', message='You Are Correct') 
    else: 
     messagebox.showinfo('Incorrect', message='You Are Wrong.') 

def question_1(window): 

    Label(window, text='Q.1.What data type is a whole number?').pack() 

    Radiobutton(window, text='[A] Str', variable=var, value=1).pack(anchor=W) 
    Radiobutton(window, text='[B] Float', variable=var, value=2).pack(anchor=W) 
    Radiobutton(window, text='[C] Int', variable=var, value=3).pack(anchor=W) 
    Radiobutton(window, text='[D] Char', variable=var, value=4).pack(anchor=W) 

    Button(window, text='Submit', command=checkDecision).pack() 

    return 3 

root = Tk() 

var = IntVar() 

answer = question_1(root) 

mainloop() 

enter image description here