我的代码如下;它应该重复绘制随机颜色和大小的圆圈,但只绘制一个。我尝试了无数的mainloop()和window1.update()组合,但总是遇到同样的问题。
#!/usr/bin/env python3
from tkinter import *
from random import *
WIDTH = 1024/2
HEIGHT = 720/2
window1 = Tk()
c1 = Canvas(window1, width=WIDTH, height=HEIGHT, bg='#FFFFFF')
c1.pack()
colours = ('#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF')
while 3 == 3:
colchose = choice(colours)
x0 = randint(0, WIDTH)
y0 = randint(0, HEIGHT)
c1.create_oval(x0, y0, x0+d, y0+d, fill=colchose)
mainloop()
答案 0 :(得分:0)
问题是你在最后一行调用mainloop()。一旦整个程序终止,此呼叫将结束 我建议你看一下Python的threading facilities。您可以创建另一个在主循环执行时绘制到画布上的线程。