код у вас есть ли не выполнять после root.mainloop()
.
Даже если вы сделаете простой оператор print("Hello World")
после root.mainloop()
, он не будет выполнен, пока ваше окно Tkinter не закроется.
Это потому, что root.mainloop()
- это петля infinte, постоянно работающая с вашим окном tkinter.
root.mainloop() #Runs your tkinter window
print("Hello World") #<-- Will not be executed until your root.mainloop() stops
Таким образом, вопрос: как мы получаем ваши «закрыть окно через 5 секунд» работать во root.mainloop
...
Ответ посредством использования root.after(miliseconds,desiredFunction)
.
Вот ваша программа с желаемым эффектом закрытия через 5 секунд:
from tkinter import *
import time
root = Tk()
text = "Hello World"
theLabel = Label(root,text = text,font=("Arial",200),height = 100,)
theLabel.pack()
#after 5000 miliseconds(5 seconds) of root being 'alive', execute root.destroy()
root.after(5000, root.destroy) #notice no parenthesis() after destroy
root.mainloop()
Надеюсь, это то, что вы искали! -Gunner
_ «Постоянно работает ваше окно tkinter.» _ Не совсем то, что происходит. Он не «запускает» окно, он запускает цикл событий. Возможно, это расщепление волос, но вы заставляете его звучать так, будто он запускает вашу программу снова и снова, а это не так. Код в вашей программе выполняется один раз. –