延迟时间的问题
Problems with making time delay
我正在尝试显示一些 labels
确切的时间,而不是忘记它们。我尝试使用 sleep()
和 time.sleep()
,但程序在我定义的时间之后启动,然后执行行。这是我的程序的一部分:
from time import sleep
from tkinter import*
from tkinter import ttk
root = Tk()
root.geometry('700x700+400+100')
root.overrideredirect(1)
myFrame=Frame(root)
label1=Label(myFrame, text='Warning!', font=('Arial Black', '26'), fg='red')
myFrame.pack()
label1.pack()
sleep(10)
myFrame.pack_forget()
label1.pack_forget()
但是当我 运行 程序等待 10 秒然后执行这些行(frame
和 label
被打包然后立即忘记)。
我希望清楚,我有什么问题。
使用 Tkinter after
方法而不是 time.sleep()
,因为 time.sleep()
几乎不应该在 GUI 中使用。 after
安排函数在指定时间(以毫秒为单位)后调用。你可以这样实现它:
myFrame.after(10000, myFrame.pack_forget)
label1.after(10000,label1.pack_forget)
请注意,after
并不 确保 函数会在正确的时间发生,它只会将其安排到在 一定时间后 发生。由于 Tkinter 是单线程的,如果您的应用程序很忙,则可能会有微秒级的延迟(最有可能)。
我正在尝试显示一些 labels
确切的时间,而不是忘记它们。我尝试使用 sleep()
和 time.sleep()
,但程序在我定义的时间之后启动,然后执行行。这是我的程序的一部分:
from time import sleep
from tkinter import*
from tkinter import ttk
root = Tk()
root.geometry('700x700+400+100')
root.overrideredirect(1)
myFrame=Frame(root)
label1=Label(myFrame, text='Warning!', font=('Arial Black', '26'), fg='red')
myFrame.pack()
label1.pack()
sleep(10)
myFrame.pack_forget()
label1.pack_forget()
但是当我 运行 程序等待 10 秒然后执行这些行(frame
和 label
被打包然后立即忘记)。
我希望清楚,我有什么问题。
使用 Tkinter after
方法而不是 time.sleep()
,因为 time.sleep()
几乎不应该在 GUI 中使用。 after
安排函数在指定时间(以毫秒为单位)后调用。你可以这样实现它:
myFrame.after(10000, myFrame.pack_forget)
label1.after(10000,label1.pack_forget)
请注意,after
并不 确保 函数会在正确的时间发生,它只会将其安排到在 一定时间后 发生。由于 Tkinter 是单线程的,如果您的应用程序很忙,则可能会有微秒级的延迟(最有可能)。