Как я могу удалить ярлык? - PullRequest
       2

Как я могу удалить ярлык?

0 голосов
/ 01 августа 2020

Когда я нажимаю кнопку, под ней должен быть написан текст, который должен исчезнуть через несколько секунд.

Я не знаю, как это кодировать. Что я пробовал до сих пор:

from tkinter import *
import time


window = Tk()
window.title("Button")
window.geometry("500x300")

def buttonclick():
    tex = Label(text="You clicked the button")
    tex.pack()
    time.sleep(5)
    tex.destroy()

but = Button(text="Click me!", command=buttonclick)
but.pack()
window.mainloop()

Ответы [ 2 ]

4 голосов
/ 01 августа 2020

Вы можете использовать метод .after() для уничтожения метки через фиксированный период времени.

В следующем примере метка будет удалена через 3 секунды:

from tkinter import *
import time


window = Tk()
window.title("Button")
window.geometry("500x300")

def buttonclick():
    tex = Label(text="You clicked the button")
    tex.pack()
    tex.after(3000, tex.destroy)

but = Button(text="Click me!", command=buttonclick)
but.pack()
window.mainloop()

Вывод:

уничтожить этикетку через 3 секунды

0 голосов
/ 01 августа 2020

Ваш код по большей части выглядит правильно. Причина, по которой он, похоже, не работает, заключается в том, что ничего не сообщает окну об обновлении после добавления текста. Простое исправление - добавить window.update() при создании метки.

Код должен выглядеть так:

from tkinter import *
import time


window = Tk()
window.title("Button")
window.geometry("500x300")

def buttonclick():
    tex = Label(text="You clicked the button")
    tex.pack()
    window.update()
    time.sleep(5)
    tex.destroy()
    window.update()

but = Button(text="Click me!", command=buttonclick)
but.pack()
window.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...