我试图在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()
答案 0 :(得分:2)
如果通过"不改变他们指定的变量",你的意思是"它总是打印PY_VAR0
无论我选择哪一个",是的,这是正常的行为 - 打印IntVar不会向您提供有关其包含的值的任何信息。请尝试使用get
。
def rbselect(self):
print(self.bvar.get())
现在选择" 1"单选按钮导致" 1"打印,同样适用于" 0"。
答案 1 :(得分:1)
需要使用.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()