我试图制作一个简单的程序,它可以选择程序并启动它们,但是当我从列表中选择一个porgram时,它会给出一个名称错误。
from tkinter import *
class Window(Frame):
def __init__(self, master=None):
Frame.__init__(self,master)
self.pack(fill=BOTH, expand=1)
var=IntVar
example=Checkbutton(self, text="example", variable=var, onvalue=1, offvalue=0, command=self.example)
example.place(x=0,y=0)
def example(self):
if (example.get() == 1):
print("1")
elif (example.get() == 0):
print("0")
root=Tk()
app=Window(root)
root.geometry("220x120")
root.resizable(width=False, height=False)
root.mainloop()当我运行它时,它可以正常工作,但是单击复选框就会产生错误。
NameError:未定义名称“示例”
我试过用不同的关键字搜索,但没有找到解决方案。我所取得的唯一进展是将(self)从def example后面移除,这给出了以下错误
TypeError:例()接受0个位置参数,但给出了1
如有任何帮助,我们将不胜感激。
发布于 2021-03-15 19:30:08
您的代码存在一些问题:
正如注释中指出的那样,为了使self.example.
example,要么必须执行visible.
get(),您希望使用IntVar var,而不是使用复选框本身。再一次,var需要是self.var是visible.
var需要是IntVar的实例,所以您需要括号:var = IntVar()。
总之,随着这些修改的实施,将是:
from tkinter import *
class Window(Frame):
def __init__(self, master=None):
Frame.__init__(self,master)
self.pack(fill=BOTH, expand=1)
self.var=IntVar()
example=Checkbutton(self, text="example", variable=self.var, onvalue=1, offvalue=0, command=self.example)
example.place(x=0,y=0)
def example(self):
if (self.var.get() == 1):
print("1")
elif (self.var.get() == 0):
print("0")
root=Tk()
app=Window(root)
root.geometry("220x120")
root.resizable(width=False, height=False)
root.mainloop()https://stackoverflow.com/questions/66644207
复制相似问题