2

我想在 tkinter 中创建一个由绿色和黑色方块组成的 2d 地图。每个方块都有一个小文字。

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)))

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

4

1 回答 1

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()
于 2013-07-23T17:04:08.750 回答