这是怎么了,请帮忙。它写的是 lbl1未定义。我已经定义了订单错误,该如何修复?每天我都会遇到这样的问题,您能帮我吗?
import tkinter
window = tkinter.Tk()
window.title("Calculator 2")
window.geometry("400x400")
def func1():
lbl1 = tkinter.Label(window, text="1")
lbl1.pack()
def func2():
lbl2 = tkinter.Label(window, text="+")
lbl2.pack()
def func3():
lbl3 = tkinter.Label(window, text="2")
lbl3.pack()
btn1 = tkinter.Button(window, text="1", command=func1)
btn2 = tkinter.Button(window, text="+", command=func2)
btn3 = tkinter.Button(window, text="2", command=func3)
btn1.pack()
btn2.pack()
btn3.pack()
def funclst():
if lbl1 == "1" and lbl2 == "+" and lbl3 == "2":
rstt = tkinter.Label(window, text=(int(lbl1) + int(lbl3)))
rstt.pack()
lst = tkinter.Button(window, text="Calculate", command=funclst)
lst.pack()
window.mainloop()
答案 0 :(得分:0)
您可以在函数内部创建标签。当函数结束时,分配给标签的名称将被垃圾回收。稍后,当您尝试访问if
语句中的变量时,它们不在全局范围内定义。
也; if
语句检查不能作为lbl1 == "1"
使用的lbl1
是对标签的引用,而不是对标签内文本的引用。可以通过lbl1['text']
或lbl1.cget("text")