画布中的python time sleep方法

时间:2014-05-10 14:31:03

标签: python canvas tkinter sleep

这就是我想要做的。非常简单的代码。逐渐从一点到另一点画线。这是我的代码:

from Tkinter import *
import time

mGui = Tk()
mGui.title('GUI Example')
mGui.geometry('1024x576+10+30')

#Canvas
canvas_1 = Canvas(mGui,height=500,width=500,bg='grey')

for i in range(1, 500):
    time.sleep(0.5)
    canvas_1.create_line(0,0,i,i)
    canvas_1.update()

canvas_1.pack()

mGui.mainloop()

我的窗口只保持空白0.5 * 500秒(250秒),然后画布显示绘制的线条。我究竟做错了什么?

1 个答案:

答案 0 :(得分:1)

你需要在开始循环之前在画布上调用pack方法:

from Tkinter import *
import time

mGui = Tk()
mGui.title('GUI Example')
mGui.geometry('1024x576+10+30')

#Canvas
canvas_1 = Canvas(mGui,height=500,width=500,bg='grey')

#################
canvas_1.pack()
#################

for i in range(1, 500):
    time.sleep(0.5)
    canvas_1.create_line(0,0,i,i)
    canvas_1.update()

mGui.mainloop()

否则,在循环退出之前,画布不会放在窗口上。