5

好的,我想组合一个 Python/Tkinter 对话框,显示一条简单的消息并在 N 秒后自毁。有没有一种简单的方法可以做到这一点?

4

2 回答 2

11

您可以使用该after函数在经过延迟后调用函数并destroy关闭窗口。

这是一个例子

from Tkinter import Label, Tk
root = Tk()
prompt = 'hello'
label1 = Label(root, text=prompt, width=len(prompt))
label1.pack()

def close_after_2s():
    root.destroy()

root.after(2000, close_after_2s)
root.mainloop()

更新: after docstring 说:

在给定时间后调用一次函数。MS 以毫秒为单位指定时间。FUNC 给出应调用的函数。附加参数作为函数调用的参数给出。返回标识符以使用 after_cancel 取消调度。

于 2009-12-16T20:19:26.750 回答
1

你也可以使用线程。
此示例使用 Timer 在指定时间后调用 destroy()。

import threading
import Tkinter


root = Tkinter.Tk()
Tkinter.Frame(root, width=250, height=100).pack()
Tkinter.Label(root, text='Hello').place(x=10, y=10)

threading.Timer(3.0, root.destroy).start()

root.mainloop()
于 2009-12-16T20:29:00.850 回答