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

2024-09-30 14:17:11 发布

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

我尝试在python3.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()

Tags: runtextimportselfmastervaluetkinterdef
2条回答

如果说“不更改其指定的变量”,您的意思是“无论我选择哪个变量,它总是打印PY_VAR0”,是的,这是正常的行为-打印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()

相关问题 更多 >

    热门问题