Метка не определена - PullRequest
       4

Метка не определена

0 голосов
/ 17 ноября 2018

Что не так, пожалуйста, помогите. Это пишет 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 голосов
/ 20 ноября 2018

Вы создаете метки внутри функций.Когда функция завершается, имена, назначенные меткам, собираются мусором.Позже, когда вы попытаетесь получить доступ к переменным в операторе if, они не будут определены в глобальной области видимости.

Также;оператор if проверяет, будет ли lbl1 == "1" работать не так, как lbl1 является ссылкой на метку, а не на текст внутри метки.Доступ к тексту можно получить через lbl1['text'] или lbl1.cget("text")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...