如何启动一个自毁的Python/Tkinter对话框?

5 投票
2 回答
7656 浏览
提问于 2025-04-15 17:06

好的,我想用Python和Tkinter做一个对话框,里面显示一个简单的信息,并且在N秒后自动消失。有没有简单的方法可以做到这一点?

2 个回答

1

你也可以使用线程。
这个例子使用了一个定时器,在指定的时间后调用 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()
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 的说明是:

在指定的时间后调用一次函数。 时间单位是毫秒(千分之一秒)。 FUNC 是要调用的函数。 其他参数会作为函数调用的参数传入。 返回一个标识符,可以用来取消这个定时调用。

撰写回答