标签未定义

时间:2018-11-17 12:09:55

标签: python tkinter

这是怎么了,请帮忙。它写的是 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()

1 个答案:

答案 0 :(得分:0)

您可以在函数内部创建标签。当函数结束时,分配给标签的名称将被垃圾回收。稍后,当您尝试访问if语句中的变量时,它们不在全局范围内定义。

也; if语句检查不能作为lbl1 == "1"使用的lbl1是对标签的引用,而不是对标签内文本的引用。可以通过lbl1['text']lbl1.cget("text")

访问文本