Что здесь не так, помогите пожалуйста. Пишет 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()






Вы создаете метки внутри функций. Когда функция завершается, имена, присвоенные меткам, собираются сборщиком мусора. Позже, когда вы попытаетесь получить доступ к переменным в операторе if, они не определены в глобальной области.
Также; Операторы if проверяют, является ли lbl1 == "1", который не будет работать как lbl1, ссылкой на этикетку, а не на текст внутри этикетки. Доступ к тексту можно получить через lbl1['text'] или lbl1.cget("text").
Пожалуйста, включите трассировку ошибки полный, а не просто цитируйте приблизительно сообщение об ошибке.