无法从单选按钮检索值

2024-09-30 03:22:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在正在做我的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()

我知道这个问题的解决方案可能非常简单,但我只是因为某些原因无法得到它,我也查阅了这里的帖子寻求解决方案,但不知怎么的我找不到解决办法。很抱歉给您带来不便,但我真的需要知道如何获得价值才能取得任何进展。(稍后我将更改代码的结构,使用类,但现在我只需要这样才能工作)。在


Tags: texttruemessagevaluevardefcolumnwindow
1条回答
网友
1楼 · 发布于 2024-09-30 03:22:59

有两件事:Tutorials Point documentation for RadioButton表示:

If the control variable is an IntVar, give each radiobutton in the group a different integer value

第二,这行不通:

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

你真的想要:

^{pr2}$

对你的例子进行了再加工和简化:

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

相关问题 更多 >

    热门问题