2013-07-23 74 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