python - 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())
我不知道如何调试它,因为我找不到矩形元素在哪里,有什么想法为什么会这样吗?也许更新/之后的使用不正确?
解决方案
你没有i
正确增加,它应该是i+=1
. 你也没有说什么newAuto
是,但我猜这行应该是canves.itemconfig(elem, fill=colorMap[str(i)])
. 希望这可以帮助。
推荐阅读
- c# - 使用反序列化 XML 文件中的多字段 List<> 填充第二个单字段列表 (Xamarin)
- java - JSON 在全选中抛出 java.lang.StackOverflowError
- c# - 在 C# 中使用 Python 库
- javascript - 用于处理日期选择器下拉列表的 JavaScript 对象(三个不同的下拉列表)
- webpack - Webpack 4 - 父文件夹中的 node_modules。如何创建供应商块?
- php - 如果使用 HTML,TCPDF MultiCell 会忽略 valign
- c# - RabbitMQ C# 客户端可扩展?
- apache-spark - Spark shuffle 阻止复制
- rest - 运行在不同 Docker 容器中的 Spring Boot 应用程序拒绝连接
- vim - 在 pipenv 中从 vim ALE 运行 Pylint 和 MyPy 时出现错误的导入错误。-- :!pylint % 有效 -- :!mypy % 有效