如何在Tkinter画布上配置动态创建的矩形?

因此,我正在Python的Tkinter上创建图像到单词的匹配游戏。用户可以选择要使用/匹配多少个图像/单词,我需要一个红色矩形来对应每个图像。我用来创建这些矩形的代码如下:

for item in wordList: ##creating the image and its corresponding rectangle
    cv.create_image(xVal*i,100,image=item[0])
    cv.create_rectangle(xVal*(i-1)+10,445,xVal*(i+1)-10,475,fill="red")
    i += 2

其中wordList是将显示给用户的图像列表。 我想做的是,如果用户在Entry小部件中输入正确的单词,则每个图像的矩形都变为绿色。但是,我不知道如何访问/配置所制作的矩形。

有什么想法吗?

angeldou123 回答:如何在Tkinter画布上配置动态创建的矩形?

每次在画布上创建一个项目时,该函数都会返回一个唯一的ID。您可以使用该id laster作为itemconfigure方法的第一个参数。您只需要存储这些ID并在以后使用即可。

或者,如果wordList中的每个单词都是唯一的,则可以将该单词用作标签,并将该标签视为唯一ID。在下面的示例中,图像和矩形都将单词作为标签。矩形还有一个标记,即带有前缀“ rect-”的单词。

for item in wordList: ##creating the image and its corresponding rectangle
    cv.create_image(xVal*i,100,image=item[0],tags=(item,))
    cv.create_rectangle(xVal*(i-1)+10,445,xVal*(i+1)-10,475,fill="red","rect-"+item))
    i += 2

这样,您可以使用以下方式为单词“ hello”配置矩形:

cv.itemconfigure("rect-hello",fill="green")
本文链接:https://www.f2er.com/2895661.html

大家都在问