Как очистить отображаемый текст с помощью функции Tkinter label(). Place()

Как очистить код a = Label()?

как очистить текст этой метки при использовании функции.place() a = Label()?

l = IntVar()
t = IntVar()
a = StringVar()

def speed(): 
    global a
    length= l.get()
    time = t.get()
    answer = length/time
    a = Label(frame, text=answer, font="Times 13 bold", bg="Black", fg="WHITE" ).place(x = 100 , y = 160)
    
def clear():
    '''This function is not clearing label of where I am displaying the answer in a = Label '''
    l.set('')
    t.set('')
    #a.set('')<---NOT WORKING
    #a.delete(0,'END')<----NOT WORKING
    #a.destroty()<----NOT WORKING
    #a.configure(text="")<---NOT WORKING
    
ll = Entry(frame, width=30, textvariable=l , border=5).place(x=150 , y=90)
le = Label(frame, text="Enter Length :" , font="Times 16 bold" , bg="WHITE", fg="Black" ).place(x=10 , y = 88 )

tt = Entry(frame, width=30, textvariable=t , border=5).place(x=150 , y=130)
ti = Label(frame, text="Enter Time :" ,font="Times 16 bold" , bg="WHITE", fg="Black" ).place(x=10 , y = 128 )

ans = Label(frame, text="Speed = " , font="Times 16 bold", bg="WHITE", fg="Black" ).place(x = 10 , y = 160)

spd = Button(frame, text="Calculate Speed", width=20, command=speed , bg="Black", fg="WHITE" , border = 4 ).place(x=30 , y = 190 )
cl = Button(frame, text="Clear Text", width=20, command=clear , bg="Black", fg="WHITE" , border = 4 ).place(x=200 , y = 190 )

1 ответ

Решение

Проблема в том, что, поскольку вы использовали .place с определением объекта Label/Entry объекты, возвращаемое значение будет None

x = Label(<configurable_options>).place(...)  # x is None

в то время как,

x = Label(<configurable_options>)  # defines x as a Label object
x.place(...)  # places x at your desired location

Это верно для всех менеджеров по расположению - place, grid и pack

Кроме того, вам также необходимо назначить textvaribale на ваш Label чтобы иметь возможность очистить их (спасибо @CoolCloud)

l = StringVar()
l1 = Label(..., textvariable=l)

Если вы не хотите добавлять текстовую переменную, просто используйте .config метод Label.

l1.config(text='')
Другие вопросы по тегам