#python #tkinter #button
#python #tkinter #кнопка
Вопрос:
У меня есть функция, которая вызывается с кнопки. У него есть time.sleep()
def func():
button.place_forget()
text = Label(root, text = "Text"
text.place(x = 0, y = 0, in_ = root)
time.sleep(1)
text.place_forget()
button = Button(root, text = "Button", command = func)
Когда это вызывается, я ожидаю, что кнопка сначала исчезнет, затем появится текст, затем подождите 1 секунду, а затем текст исчезнет. Но что происходит, так это то, что программа ждет 1 секунду, затем добавляет текст, немедленно удаляет его, а затем заставляет кнопку исчезнуть. Как мне заставить ее работать так, как я хочу?
Комментарии:
1. Не могли бы вы попробовать
command
изменить свойcommand=lambda:func()
Ответ №1:
Используйте after()
вместо sleep()
:
def func():
button.place_forget()
text = Label(root, text="Text")
text.place(x=0, y=0)
# schedule to remove the text after 1 second
text.after(1000, text.place_forget)
Ответ №2:
button = Button(root, text = "Button", command = func())
button.pack()
Комментарии:
1.
command=func()
будет выполнятьсяfunc()
немедленно, а не при нажатии кнопки.