【问题标题】:Alter tkinter canvas objects after drawing绘图后更改 tkinter 画布对象
【发布时间】:2013-07-23 16:28:08
【问题描述】:

我想在 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)))

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

【问题讨论】:

    标签: python tkinter tk


    【解决方案1】:

    我无法真正使用您的代码,特别是因为它只是一个更大的东西的 sn-p。但是,这应该演示如何做你想做的事。

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

    【讨论】:

      猜你喜欢
      • 2021-12-02
      • 1970-01-01
      • 2017-01-06
      • 2011-05-16
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多