首页 > 解决方案 > python Tkinter 更改列表中的每个矩形

问题描述

我正在尝试将列表中每个矩形的颜色更改为不同的颜色并全部绘制。但由于某种原因,它要么将所有矩形更改为相同的颜色,要么保持不变。

这是代码:

def draw(newAuto,canves):
    colorMap = {
        "0":"green",
        "1":"blue",
        "2":"red"
    }
    i=0
    for elem in canves.find_withtag("my_tag"):
        canves.itemconfig(elem, fill=colorMap[str(newAuto[i])])
        i+=i
    canves.after(100, canves.update())

我不知道如何调试它,因为我找不到矩形元素在哪里,有什么想法为什么会这样吗?也许更新/之后的使用不正确?

标签: pythontkinter

解决方案


你没有i正确增加,它应该是i+=1. 你也没有说什么newAuto是,但我猜这行应该是canves.itemconfig(elem, fill=colorMap[str(i)]). 希望这可以帮助。


推荐阅读