在Tkinter中多次在同一小部件 上打印字符(有延迟)

问题描述 投票:0回答:2

我试图在同一窗口小部件上多次延迟打印(出现一个字符,经过几毫秒然后出现下一个字符),一次又一次,例如> 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()

user-interface tkinter textbox output python-3.7
2个回答
0
投票

您的代码正在并行执行两个文本,因此您将获得以下输出:


0
投票
您的代码的问题是after(3000)time.sleep几乎完全相同-它冻结了整个UI。
© www.soinside.com 2019 - 2024. All rights reserved.