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()
我正在尝试使用 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()