我正在使用 Tkinter (2.7) 尝试创建一个绘制的有限循环,然后擦除画布小部件上的一个矩形,就像它的闪烁一样。在尝试了几天我能找到的一切之后,我不得不寻求帮助。
问题:
下面的代码似乎在程序内部创建和删除了矩形,但没有在主窗口(根)中显示它。
from Tkinter import *
root = Tk()
def make():
canvas.create_rectangle(20,20,60,60,fill="pink")
root.after(1000)
def unmake():
canvas.delete(ALL)
root.after(1000)
def loop():
count = 0
while count < 5:
make()
unmake()
count += 1
canvas = Canvas(root,width=100,height=100)
canvas.pack()
loop()
root.mainloop()
我尝试过的事情:
如果我在 make() 和 unmake() 函数中放置打印指令,这些打印间隔为 1 秒,所以我知道 .after() 方法正在工作。
如果我使用 make() 函数调用 unmake() 并再次调用 make() 进行无限循环,这确实会在主窗口(根)中显示闪烁的矩形;
def make():
box = canvas.create_rectangle(20,20,60,60,fill="pink")
root.after(1000,unmake)
def unmake():
canvas.delete(ALL)
root.after(1000,make)
如果有人知道 Tkinter 为什么会这样,我将非常感谢您的指导。谢谢。