Я не был точно уверен, что вы хотите сделать, но я изменил вашу функцию, чтобы определить, является ли num entry ''. Если нет, тогда преобразуйте значение, извлеченное в int, и сравните с 56. Если больше, вставьте запись «Отлично» в запись примечания, в противном случае добавьте «Готово» в запись примечания.
По мере ввода каждого di git, будет выполнено сравнение с 56, поэтому первое di git всегда будет приводить к появлению «Done». Как только вы превысите 56 (для этого потребуется минимум 2 цифры), он останется «отличным».
Опять же, я сделал все, что мог, с предоставленной логикой c. Вот полный код:
from tkinter import *
root = Tk()
num = StringVar()
entry1 = Entry(root, textvariable=num).pack()
remark = StringVar()
entry2 = Entry(root, textvariable=remark).pack()
def set_label(name, index, mode):
result = num.get()
if result == '':
pass # not sure what rule should be here
else:
result = int(result)
if result > 56:
remark.set("Excellent")
else:
remark.set("Done")
num.trace('w', set_label)
num.set('')
root.mainloop