Tkinter中打印字符之间的延迟

时间:2016-07-31 23:17:22

标签: python user-interface tkinter textbox

我试图制作一个打印到可滚动文本框的程序。唯一的问题是我希望角色之间有延迟。我已经看过它使用print方法但是当我尝试用文本框替换它并插入它时什么都不做。这是使用print方法的代码。

from time import sleep
import sys
output = 'Hi... I just wanted to know if you like steak?'
for char in output:
    sys.stdout.write ('%s' % char)
    sleep (0.1)

1 个答案:

答案 0 :(得分:0)

Tkinter小部件有一个名为after的方法,您可以使用该方法在将来运行命令。您可以设置一个插入一个字母的函数,然后在一天后再次调用自身。

我不知道你的可滚动文本框是什么意思"因为tkinter没有"文本框"小部件。有一行Entry窗口小部件和多行Text窗口小部件,两者都是可滚动的。以下是使用Entry小部件的示例:

import Tkinter as tk

def insert_slow(widget, string):
    if len(string) > 0:
        widget.insert("end", string[0])
        widget.xview("end")

    if len(string) > 1:
        widget.after(100, insert_slow, widget, string[1:])

root = tk.Tk()
entry = tk.Entry()
entry.pack()

insert_slow(entry, "Hi... I just wanted to know if you like steak?")

root.mainloop()