Python tkinter checkbutton未设置变量
无论我对checkbutton做什么,它似乎都不会设置变量。 以下是涉及的代码部分:Python tkinter checkbutton未设置变量,python,tkinter,Python,Tkinter,无论我对checkbutton做什么,它似乎都不会设置变量。 以下是涉及的代码部分: class Window: def __init__(self): self.manualb = 0 #to set the default value to 0 def setscreen(self): #screen and other buttons and stuff set here but thats all working fine
class Window:
def __init__(self):
self.manualb = 0 #to set the default value to 0
def setscreen(self):
#screen and other buttons and stuff set here but thats all working fine
manual = tkr.Checkbutton(master=self.root, variable=self.manualb, command=self.setMan, onvalue=0, offvalue=1) #tried with and without onvalue/offvalue, made no difference
manual.grid(row=1, column=6)
def setMan(self):
print(self.manualb)
#does some other unrelated stuff
它只是一直在打印0。我做错什么了吗?除此之外,任何操作都无法手动执行。这是因为您需要使用tkinter的一个 这将类似于以下内容:
from tkinter import *
root = Tk()
var = IntVar()
var.trace("w", lambda name, index, mode: print(var.get()))
Checkbutton(root, variable=var).pack()
root.mainloop()
本质上,
IntVar()
是一个“容器”(非常松散地说),它“保存”分配给它的小部件的值。您正在寻找IntVar()
IntVar()
有一个名为get()
的方法,它将保存分配给它的小部件的值
在此特定实例中,它将是1或0(开或关)。
您可以这样使用它:
from tkinter import Button, Entry, Tk, Checkbutton, IntVar
class GUI:
def __init__(self):
self.root = Tk()
# The variable that will hold the value of the checkbox's state
self.value = IntVar()
self.checkbutton = Checkbutton(self.root, variable=self.value, command=self.onClicked)
self.checkbutton.pack()
def onClicked(self):
# calling IntVar.get() returns the state
# of the widget it is associated with
print(self.value.get())
app = GUI()
app.root.mainloop()
嗨,杰比。解释为什么有人应该或不应该在他们的程序中做/使用某些东西通常是一个好主意。这使您所描述的想法和语言的新手更容易理解答案。感谢@EthanField,我编辑了我的帖子,包含了更多关于
IntVar
是什么的信息。