首页 > 解决方案 > 标签未定义

问题描述

这里有什么问题请帮忙。它正在写lbl1 is not defined。我已经定义它是顺序错误我该如何修复它?我每天都有这样的问题,你能帮我吗???

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()

标签: pythontkinter

解决方案


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

还; 这些if语句会检查lbl1 == "1"which 是否像lbl1对标签的引用而不是对标签内的文本一样不起作用。文本可以通过lbl1['text']或访问lbl1.cget("text")


推荐阅读