我目前正在攻读我的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()
我知道这个问题的解决方案可能非常简单,但由于某些原因我无法得到它,我已经在这里查看了解决方案,但我不知道找不到修复方法。很抱歉给您带来不便,但我真的需要知道如何获得价值以取得任何进展。 (我将在以后使用类来改变我的代码的结构,但是现在我只需要这个就可以了。)
答案 0 :(得分: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()