添加sleep()部分

时间:2016-06-16 13:50:10

标签: python tkinter sleep

我试图让球转到屏幕的一侧转身,然后回来。每当我尝试运行这个程序时,tkinter窗口都不显示,但当我摆脱睡眠(0.5)部分时,它会在球已经离开屏幕时显示出来。有人能说出我做错了吗?

from tkinter import *
from time import sleep

window = Tk() 
cWidth = 800
cHeight = 500
c = Canvas(window, width = cWidth, height = cHeight, bg='black')
c.pack()
x = 400
y = 250
ball = c.create_polygon(x, y, x, y+25, x+25, y+25, x+25,y, fill='yellow')


Ball_move = 10

for i in range(200):
    c.move(ball, Ball_move, 0)
    window.update
    x += Ball_move
    if x == cWidth:
        Ball_move = -Ball_move
    sleep(0.5)

window.mainloop()

1 个答案:

答案 0 :(得分:0)

在Windows中,只有在调用mainloop()之后才显示Tkinter框架。在您的情况下,for循环可能会阻止它。将for循环保留在函数中,然后使用线程调用该函数,以便它不会阻止主循环。