我想在 tkinter 中创建一个由绿色和黑色方 block 组成的 2D map 。每个方 block 都有一个小文字。
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)))
稍后我如何在代码中更改对象的属性?例如,如何更改正方形的颜色或更改其中一个正方形的文本?
最佳答案
我无法真正使用您的代码,因为它只是一个更大的代码的片段。然而,这应该演示如何做你想做的事。
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()
关于python - 绘制后更改 tkinter Canvas 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17815814/