[英]I keep receiving “NameError: name 'username' is not defined” error
[英]I keep reveicing the error “NameError: name 'labelAns' is not defined”,
基本上,我要做的就是将labelAns
上的文本更改为通过按下按钮插入的值,但是我一直收到错误,而且我不知道该如何解决。
我现在要做的就是在命令上更改标签。
class PageOne(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Differentiation Calculator", font=LARGE_FONT)
label.pack(pady=10,padx=10)
button1 = tk.Button(self, text="Main Menu",
command=lambda: controller.show_frame(StartPage))
button1.pack()
button2 = tk.Button(self, text="Integration",
command=lambda: controller.show_frame(PageTwo))
button2.pack()
self.num = tk.IntVar()
self.entry = tk.Entry(self, textvariable=self.num)
self.button = tk.Button(self, text='Differentiate', command=self.calc)
labelAns = tk.Label(self,text = "0", width = 15)
labelAns.pack(side = 'right')
self.entry.pack(side = 'left')
self.button.pack(side = 'left')
def calc(self):
Jack = (self.entry.get())
x = sp.Symbol('x')
res = (sp.diff(Jack,x))
global labelAns
labelAns(text = res)
print(res)
我认为您需要做的是在变量的初始声明中调用labelAns
global。 你应该能够改变
labelAns = tk.Label(self,text = "0", width = 15)
进入
global labelAns = tk.Label(self,text = "0", width = 15)
然后它应该工作。 另外,您以后应该可以引用labelAns
,而无需使用global labelAns
。
最好这样做,这样您就可以轻松参考标签:
class PageOne(tk.Frame):
def __init__(self, parent, controller):
...
self.labelAns = tk.Label(self,text = "0", width = 15)
self.labelAns.pack(side = 'right')
...
def calc(self):
...
self.labelAns['text'] = res
...
还要注意我如何更改标签self.labelAns
的文本。 我认为您所拥有的不会起作用-这不是我以前见过的(尽管这并不意味着它不会起作用)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.