Вы создали ярлыки, но не дали каждому ссылку / название ярлыка. Без ссылки вы не можете указать программе, какую метку удалить.
Вместо использования:
Label(root, text="The voucher " + str(voucher.get()) + " number is outside of valid range").place(x=200, y=175)
Вы должны использовать (например, с меткой Label1:):
Label1 = Label(root, text="The voucher " + str(voucher.get()) + " number is outside of valid range")
Label1.place(x=200, y=175)
Это создаст ярлык с именем ссылки / ярлыка 'Label1'
Примечание. Я помещаю .place () в строку ниже, потому что, когда вы помещаете .place () в одну строку, как показано ниже:
Label1 = Label(root, text="The voucher " + str(voucher.get()) + " number is outside of valid range").place(x=200, y=175)
Ссылка / метка Label1 устанавливается на то, что возвращается:
Label(root, text="The voucher " + str(voucher.get()) + " number is outside of valid range").place(x=200, y=175)
поэтому он установлен в none, потому что .place () не возвращает none.
Чтобы уничтожить метку (например, Label1), вы используете Label1.destroy ().
Ваш улучшенный код:
if int(voucher.get()) > int(maxN):
textbox.configure(state="normal")
textbox.delete('1.0', END)
textbox.update()
Label1 = Label(root, text="The voucher " + str(voucher.get()) + " number is outside of valid range")
Label1.place(x=200, y=175)
textbox.configure(state="disabled")
elif int(voucher.get()) < int(minN):
textbox.configure(state="normal")
textbox.delete('1.0', END)
textbox.update()
Label1 = Label(root, text="The voucher " + str(voucher.get()) + " number is outside of valid range")
Label1.place(x=200, y=175)
textbox.configure(state="disabled")
else:
Label1.destroy()
textbox.configure(state="normal")
Label2 = Label(root, text="All well")
Label2.place(x=200, y=175)
Я рекомендую вам добавить:
if Label1.winfo_exists():
Label1.destroy()
к вашему оператору else, так что код Label1.destroy () - это только запуск метки 1. Таким образом, если метка 1 никогда не создавалась, программа не пытается ее уничтожить.
Это сделает ваше утверждение else похожим на:
else:
if Label1.winfo_exists():
Label1.destroy()
textbox.configure(state="normal")
Label2 = Label(root, text="All well")
Label2.place(x=200, y=175)