如何在Tkinter中按角色设置文本动画?

2024-10-01 09:41:18 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我知道在python窗口中可以使用这个。。在

for char in introstring:
    sleep(0.2)
    sys.stdout.write(char)
    sys.stdout.flush()

它将在窗口中以0.2的速度逐字显示文本

我怎样才能把它转换成Tkinter窗口?例如,我有文本:

^{pr2}$

有没有办法得到同样的动画,但在Tkinter图形用户界面,我已经设置了?我听说了一些关于“后命令”的事,但我似乎找不到它如何适用于此。在


Tags: in文本fortkinterstdoutsys动画sleep
1条回答
网友
1楼 · 发布于 2024-10-01 09:41:18

下面是一个非常简单的示例,它逐字符地将文本打印到画布上,字符之间的延迟为500毫秒。在

import Tkinter as tk

root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack()

canvas_text = canvas.create_text(10, 10, text='', anchor=tk.NW)

test_string = "This is a test"
#Time delay between chars, in milliseconds
delta = 500 
delay = 0
for i in range(len(test_string) + 1):
    s = test_string[:i]
    update_text = lambda s=s: canvas.itemconfigure(canvas_text, text=s)
    canvas.after(delay, update_text)
    delay += delta

root.mainloop()

这段代码已经在python2.6上进行了测试。要在python3上运行它,需要将import语句更改为import tkinter as tk


下面是一个更复杂的示例,它显示输入到条目小部件中的文本。当在输入小部件中按下Enter时,将显示文本。在

^{pr2}$

相关问题 更多 >