您好,我有一个python中的元组,其颜色与画布中由以下字典绘制的正方形相关:colour_mapping = {0: "red", 1: "green", 2: "blue" , 3:"purple"}
更具体地说,例如元组中的节点是:((2, 3), (3, 3))
这意味着4个正方形应该这样画:blue square purple square
purple square purple square
然后它们的颜色应该相应地改变到元组中的下一个节点
为此,我迭代元组,并为每个元素在画布上绘制一个新的矩形,然后调用time.sleep()函数,以便给用户时间来查看前一个状态的差异。
我的问题是,只有最后一个节点被正确渲染,而所有其他节点都没有显示。你能帮助我吗?
这是我目前的代码:self.parent.title("AlienTiles")
self.style = Style()
self.style.theme_use("default")
self.frame = Frame(self, relief=RAISED, borderwidth=1)
self.frame.pack(fill=BOTH, expand=1)
self.canvas = Canvas(self.frame)
self.canvas.pack(fill=BOTH, expand=1)
self.pack(fill=BOTH, expand=1)
for i in range(len(path)) : #the tuple is path
state = path[i].state
print state
time.sleep(1)
y_offset=10
for x in state:
start_x=40
start_y=10
i=1
x_offset=0
for y in x:
x0=(start_x*i)+x_offset
y0=(start_y*i)+y_offset
x1=x0+size
y1=y0+size
colour=colour_mapping[y]
print colour
self.canvas.create_rectangle(x0, y0, x1, y1, fill=colour)
x_offset=x_offset+size+10
y_offset=y_offset+size+10
总之,我试着制作一个上面描述的动画。有没有什么我认为不正确的地方,或者在每个循环中刷新画布?