2012-12-22 29 views
3

所以当我遇到一个奇怪的问题时,我只是在解释器中乱搞。我只是想让一个激动人心的笑脸让我的一天变得更加美好,但由于某种原因,我无法做到这一点。如果有人想提出这个建议,我不想在Pygame做这件事。这不是一个项目,这只是我正在做的傻事,不明白为什么它不起作用。Python - Tkinter - 有趣的地方()

from Tkinter import * 
import time,random 

root = Tk() 
root.geometry("500x500") 
root.mainloop() 
bouncer = Label(root, text="=D") 

def bounce(): 
    X = random.randint(1,500) 
    Y = random.randint(1,500) 
    bouncer.place(x=X, y=Y) 

while True: 
    time.sleep(0.5) 
    bounce() 

此代码不起作用,我对我的生活无法弄清楚为什么。结果发生的是循环永远运行,并且当I^C bounce()被调用一次并且脚本结束时。我在for循环中尝试了一下,看看我是否可以弹回100次,但弹回()只会在循环结束后调用一次。我对此很难过。

任何想法,任何人?

+0

你永远不会'导入随机',你应该删除时间和睡眠之间的逗号..它应该是'time.sleep'不应该吗? –

+0

只是一个大脑放屁。修正了,谢谢。 :) – jtsmith1287

+0

我不认为它是固定的。 –

回答

4

sleep将进程置于睡眠状态。更好地使用after

from Tkinter import * 
import time,random 

root = Tk() 
root.geometry("500x500") 
bouncer = Label(root, text="=D") 

def bounce(): 
    X = random.randint(1,500) 
    Y = random.randint(1,500) 
    bouncer.place(x=X, y=Y) 
    root.after(1000, bounce) 

bounce() 
root.mainloop()