tkinter 中的打字机效果

Duc*_*tor 3 python tkinter

我正在使用 tkinter 在 python 中创建文本冒险,因为它很容易使用图形(按钮等)

我想添加一种效果,使文本看起来像是正在打印出来的。

def displayNextPart():
    for i in buttons:
        i.destroy()
    global curPart
    for char in story[curPart]["Text"]:
        slp(.05)
        w.config(text=char)
        sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)

但窗口会冻结,直到完成为止,留给我的只是字符串的最后一个字符。

谁能帮我?

Tig*_*kT3 5

time.sleep()无法与 Tkinter 应用程序正常工作。使用after()方法如下例所示:

import tkinter as tk

root = tk.Tk()

word = 'hello'

def go(counter=1):
    l.config(text=word[:counter])
    if counter < len(word):
        root.after(150, lambda: go(counter+1))

b = tk.Button(root, text='go', command=go)
l = tk.Label(root)
b.pack()
l.pack()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)