【发布时间】:2016-06-16 13:50:10
【问题描述】:
我试图让一个球从屏幕的一侧转身,然后回来。每当我尝试运行这个程序时,tkinter 窗口都不会出现,但是当我摆脱 sleep(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()
【问题讨论】:
-
我会把
window.update()扔进戒指;-) ..而不是window.update(没有括号)-除了在tkinter eventloops中不使用time.sleep(...)的其他提示.. . -
很好看,@Dilettant。 :) 但是,一旦
sleep被删除并使用.after方法来获得所需的延迟,就不需要这样做了。 -
FWIW,这是一个非常简单的带有时间延迟的 Tkinter 动画演示:stackoverflow.com/a/32766256/4014959