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

问题描述 投票:0回答:1

所以我正在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小部件中输入正确的单词,则每个图像的矩形都变为绿色。但是,我不知道如何访问/配置所制作的矩形。

有什么想法吗?

python tkinter tkinter-canvas
1个回答
0
投票

每次在画布上创建项目时,该函数都会返回唯一的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", tags=(item, "rect-"+item))
    i += 2

这样,您就可以为“ hello”一词配置矩形,如下所示:

cv.itemconfigure("rect-hello", fill="green")
© www.soinside.com 2019 - 2024. All rights reserved.