首页 > 解决方案 > Tkinter 打字动画

问题描述

所以我正在尝试制作一个有打字动画的程序,

这是我的可重现示例:

from tkinter import *
root = Tk()
text = "message"
num = 0
message = text[num]
label = Label(root,text=message)
label.pack()
def add() :
    global num
    num + 1
    leng = len(text)
    if num == leng :
        while True :
            num = leng
    label.configure(text=message)


root.after(1000, add)
root.mainloop()

它不起作用,只显示第一个字母

标签: pythontkinter

解决方案


首先,请制作描述性的变量名称。调用变量x不会帮助其他人理解它们代表什么。

其次,你使用的方式root.after()不是它的工作方式。这段代码应该在一个函数中,它应该作为第二个参数。

最后,我删除了 message 变量,因为我们可以将索引值增加 1。

这是代码:

from tkinter import *

root = Tk()
text = "message"
index = 0

lab = Label(root)
lab.pack()

def add(a):
    global index
    if index < len(text):
        lab.config(text=lab.cget("text") + text[index])
        index += 1
    root.after(1000, add, root)


add('arg')
root.mainloop()

推荐阅读