1 回答
 
                    
                    TA贡献2003条经验 获得超2个赞
下面是 tkinter 的基本代码,它使对话框在 5 秒后弹出。
from tkinter import *
from tkinter import simpledialog
root = Tk()
root.withdraw()
def ask():
simpledialog.askstring(title="Code Required",
prompt="What's the Code?:")
root.after(5000, root.destroy) #added in the root.after() to try and terminate it after set time
root.after(3000,ask) #triggers ask() after 3000 ms(3 seconds)
#root.after(10000, root.destroy) # tried to wait 10 seconds before it breaks but this doesn't show the dialog box any more
root.mainloop()
这里after()在给定时间后触发一个函数,即 3000 毫秒(3 秒),因此您也可以调整计时器。这只是一个示例,您可以根据需要进行更多编辑。
为什么使用after()而不是while和计时器?
这是因为while循环干扰了 tkintermainloop()导致窗口无响应,所以不建议使用whileor time.sleep()。after()相反,您也可以使用tkinter 的内置方法threading。
这里有更多内容after():
- 它主要需要两个位置参数, - ms并且- func
- ms- 这是指定函数被触发的时间(以毫秒为单位)。
- func- 指定完成后触发的函数- ms。
警告: 请记住,根窗口不会被破坏,它只是被隐藏,因此只要根窗口没有被破坏,程序就会继续在后台运行,因此您必须恢复该窗口并将其关闭任务结束。出于这个原因,我root.destroy()在那里添加了。
添加回答
举报
