Как очищать лейбл перед обновлением текста в нем?

Есть вот такой код, который через комбобокс в зависимости от выбранного значения выдает заданный ответ:

from tkinter import *  
from tkinter.ttk import Combobox
from threading import Timer

def clicked():  
    if combo.current() == 0:
        lbl_1.configure(text="Value can't be «Empty». Try again.")
    elif combo.current() == 1:
        lbl_1.configure(text=combo.get())
        lbl_16 = Label(window,text="We are sorry, you too young.")
        lbl_16.grid(column=0, row=5)
        btn['state'] = DISABLED
        combo['state'] = DISABLED
        window.destroy()
    elif combo.current() == 2:
        lbl_1.configure(text=combo.get())
        lbl_16 = Label(window,text="This is a beautifull age!")
        lbl_16.grid(column=0, row=5)
    elif combo.current() == 3:
        lbl_1.configure(text=combo.get())
        lbl_16 = Label(window,text="Wow! U are so adult.")
        lbl_16.grid(column=0, row=5)
    elif combo.current() == 4:
        lbl_1.configure(text=combo.get())
        lbl_16 = Label(window,text="Bless you!")
        lbl_16.grid(column=0, row=5)
    elif combo.current() == 5:
        lbl_1.configure(text=combo.get())
        lbl_16 = Label(window,text="We hope, you don't forget your pills.")
        lbl_16.grid(column=0, row=5)
    elif combo.current() == 6:
        lbl_1.configure(text=combo.get())
        lbl_16 = Label(window,text="Have you seen Lenin?")
        lbl_16.grid(column=0, row=5)
    else:
        lbl_1.configure(text=combo.get())

window = Tk()  
window.title("Welcome")  
window.geometry('400x250')
selected = BooleanVar()
combo = Combobox(window)  
combo['values'] = ("«Empty»", "Less 16", "16-21", "22-35", "36-50", "50-65", "Over 66")
combo.current(0)  # тут устанавливается вариант по умолчанию от 0 до N-го элемента
combo.grid(column=0, row=1)
btn = Button(window, text="Apply", command=clicked)
btn.grid(column=1, row=1)
lbl_0 = Label(window,text="Choose your age:")
lbl_0.grid(column=0, row=0)
lbl_1 = Label(window)
lbl_1.grid(column=2, row=3)
lbl_2 = Label(window)
lbl_2.grid(column=1, row=2)
window.mainloop()

Но при выборе каждого нового значения, ответы визуально перекрывают друг друга. Пробовал 'delete'-ы, 'remove'-ы, гуглил, но увы, ответа не нашел.

Вот тут чел столкнулся с похожей проблемой, но в комментарии, который он пометил как "Ответ на свой вопрос" я не увидел решения.


Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так

from tkinter import *  
from tkinter.ttk import Combobox
from threading import Timer

def clicked(lbl_16):                                                        # +++ lbl_16
    if combo.current() == 0:
        lbl_1.configure(text="Value can't be «Empty». Try again.")
    elif combo.current() == 1:
        lbl_1.configure(text=combo.get())
        lbl_16.configure(text="We are sorry, you too young.")               # +++
        btn['state'] = DISABLED
        combo['state'] = DISABLED
        window.destroy()
    elif combo.current() == 2:
        lbl_1.configure(text=combo.get())
        lbl_16.configure(text="This is a beautifull age!")                  # +++
    elif combo.current() == 3:
        lbl_1.configure(text=combo.get())
        lbl_16.configure(text="Wow! U are so adult.")                       # +++
    elif combo.current() == 4:
        lbl_1.configure(text=combo.get())
        lbl_16.configure(text="Bless you!")                                 # +++
    elif combo.current() == 5:
        lbl_1.configure(text=combo.get())
        lbl_16.configure(text="We hope, you don't forget your pills.")      # +++
    elif combo.current() == 6:
        lbl_1.configure(text=combo.get())
        lbl_16.configure(text="Have you seen Lenin?")                       # +++
    else:
        lbl_1.configure(text=combo.get())


window = Tk()  
window.title("Welcome")  
window.geometry('400x250')

selected = BooleanVar()
combo = Combobox(window)  
combo['values'] = ("«Empty»", "Less 16", "16-21", "22-35", "36-50", "50-65", "Over 66")
combo.current(0)  # тут устанавливается вариант по умолчанию от 0 до N-го элемента
combo.grid(column=0, row=1)

lbl_16 = Label(window)                                                                   # +++
lbl_16.grid(column=0, row=5)                                                             # +++

btn = Button(window, text="Apply", command=lambda l_16=lbl_16 : clicked(l_16))           # +++ lambda
btn.grid(column=1, row=1)

lbl_0 = Label(window,text="Choose your age:")
lbl_0.grid(column=0, row=0)
lbl_1 = Label(window)
lbl_1.grid(column=2, row=3)
lbl_2 = Label(window)
lbl_2.grid(column=1, row=2)

window.mainloop()

введите сюда описание изображения

введите сюда описание изображения

→ Ссылка