在python中单击时更改tkinter矩形的颜色

在python中单击时更改tkinter矩形的颜色,python,tkinter,tkinter-canvas,Python,Tkinter,Tkinter Canvas,我有一段代码,它画了一个简单的矩形: from tkinter import * root = Tk() canvas = Canvas(root, width = 500, height = 500) canvas.pack() canvas.create_rectangle(100, 100, 400, 400, fill='black') mainloop() 现在我到处都在找,似乎根本找不到改变填充颜色的方法,理想情况下,我希望能够在点击时做到这一点 实际上,我要用它来改变六边

我有一段代码,它画了一个简单的矩形:

from tkinter import *

root = Tk()
canvas = Canvas(root, width = 500, height = 500)
canvas.pack()

canvas.create_rectangle(100, 100, 400, 400, fill='black')


mainloop()
现在我到处都在找,似乎根本找不到改变填充颜色的方法,理想情况下,我希望能够在点击时做到这一点

实际上,我要用它来改变六边形的颜色,这个六边形是由我写的一个函数生成的,这个函数使用

create_polygon()
但我想它对矩形的作用是一样的


我意识到代码可能需要完全重组。

命名它,然后通过
itemconfig
引用它,如下所示:

myrectangle = canvas.create_rectangle(100, 100, 400, 400, fill='black')
canvas.itemconfig(myrectangle, fill='red')

如果你只有几个矩形,那就太好了:但这对很多形状都不适用——有没有其他方法不使用包含矩形引用的变量名?@monojohnny,恐怕我不知道;我对Tkinter的经验有限。事实上,重要的不是名称,而是对对象本身的引用,所以你的方法非常有效,事实上,我可以说,它的伸缩性非常好。(我认为变量的名称很特别,但实际上它是变量所指向的),干杯@您可以创建这些对象的列表,而不是每个对象的变量。通过这样做,以后您可以使用此列表进行迭代,并执行任何您想要的操作。这是更好的解决方案吗?