Python tkinter 单选按钮不会更改变量

Python tkinter Radio Button Won't Change Variable

我正在尝试使用 python 3.4.3 中的单选按钮,但单选按钮没有更改其分配的变量。我在这里错过了什么?

from tkinter import *
import tkinter

class c:
def __init__(self):
    self.master=tkinter.Tk()
    self.bvar=IntVar()
    rb1=Radiobutton(self.master,text="1",variable= self.bvar,value=1,command=self.rbselect).pack()
    rb2=Radiobutton(self.master,text="0",variable=self.bvar,value=0,command=self.rbselect).pack()

def rbselect(self):
    print(self.bvar)

def run(self):
    self.master.mainloop()

app=c()
app.run()

如果 "not changing their assigned variable",你的意思是 "it always prints PY_VAR0 no matter which one I select",是的,这是正常行为 - 打印一个 IntVar 不会给你任何关于它包含什么值的信息。请尝试使用 get

def rbselect(self):
    print(self.bvar.get())

现在选择“1”单选按钮会导致打印“1”,对于“0”也是如此。

需要使用 .get() 来比较 IntVar 实例:

from tkinter import *
import tkinter

class c:
    def __init__(self):
        self.master=tkinter.Tk()
        self.b=IntVar() 
        rb1=Radiobutton(self.master,text="1",variable= self.b,value=1,command=self.rbselect).pack()
        rb2=Radiobutton(self.master,text="0",variable= self.b,value=0,command=self.rbselect).pack()

    def rbselect(self):
        print(self.b.get())

    def run(self):
        self.master.mainloop()

app=c()
app.run()