2013-07-23 42 views
2

我想创建一个由tkinter中的绿色和黑色方块组成的2D地图。每个广场都有一个小文字。在绘制之后改变tkinter画布对象

canvasObjects = {} 
for i, row in enumerate(self.map): 
      for j, cell in enumerate(row): 
       color = "black" if cell else "green" 
       canvasObject[(i,j)] = self.canvas.create_rectangle(r * i, r * j, r * (i + 1), r * (j + 1), outline=color, fill=color) 
       canvasObject[(i,j, "text")] = self.land[(i, j)] = self.canvas.create_text(r * i, r * j, anchor=NE, fill="white", text="1", tag=str((i, j))) 

如何在代码中稍后改变对象的属性?例如,我如何改变正方形的颜色或改变其中一个正文的文字?

回答

2

我真的无法真正处理您的代码,因为它只是一个更大的事情的片段。但是,这应该演示如何做你想做的。

from Tkinter import * 
root = Tk() 
canvas = Canvas(root) 
canvas.pack() 
rect = canvas.create_rectangle(10,10,70,70, outline="blue", fill="red") 
def switch(): 
    # Use the itemconfig method of a Canvas to alter specific items 
    canvas.itemconfig(rect, outline="green", fill="blue") 
Button(root, text="switch", command=switch).pack() 
root.mainloop() 
+0

这正是我所期待的,非常感谢。 – EasilyBaffled