#coding=utf-8
'''Tkinter module'''
from Tkinter import *
import time
root=Tk()
t=Text(root,fg='red')
t.pack()
def insert_hello_into_text_area():
t.insert(1.0,'Hello')
Button(root,text='hello',command=insert_hello_into_text_area).pack()
def start():
i=0
while i<5:
t.insert(1.0,'Hello\n')
time.sleep(1)
i+=1
Button(root,text='start',command=start).pack()
root.mainloop()
这是一个使用Tkinter模块的python程序。当我点击“开始”按钮时,我每秒都无法得到一个'你好'。相反,所有'Hello'将在五秒后出现。那么如何在这个程序中一次显示'Hello'而不是显示五个'Hello'?
答案 0 :(得分:4)
使用after
。
while
循环time.sleep
after
在n
(以下代码为1000)毫秒后调用回调。
def start(times=5):
t.insert(END, 'Hello\n')
if times > 1:
root.after(1000, lambda: start(times-1))