我试图在同一窗口小部件上多次延迟打印(出现一个字符,经过几毫秒然后出现下一个字符),一次又一次,例如> text出现延迟>第二遍>延迟显示更多文本...等等。 time.sleep()似乎不起作用,我也不知道如何正确使用.after()
这是我正在使用的代码
from tkinter import *
def insert_slow(widget, string):
if len(string) > 0:
widget.insert(END, string[0])
if len(string) > 1:
widget.after(50, insert_slow, widget, string[1:])
root=Tk()
tx=Text(root)
tx.pack()
insert_slow(tx, "this is a testing piece of text\n")
tx.after(3000)
loop=insert_slow(tx, "this is another testing piece of text")
root.mainloop()
您的代码正在并行执行两个文本,因此您将获得以下输出:
after(3000)
与time.sleep
几乎完全相同-它冻结了整个UI。