我正在使用 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)
但窗口会冻结,直到完成为止,留给我的只是字符串的最后一个字符。
谁能帮我?
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)
| 归档时间: |
|
| 查看次数: |
2574 次 |
| 最近记录: |