首页 > 解决方案 > 如何删除 tkinter 上的特定图像?

问题描述

我正在尝试制作一个游戏,在您单击特定区域之前隐藏其后面的区域,但我不知道如何删除画布上的特定图像,因为我使用循环来创建图像并且可以' t 为其设置特定标签。PS我没有把完整的代码放在这段代码中,如果你运行它,我只需要知道在标签部分放什么。

`from tkinter import *

def cover():
    b = 0
    c = 0
    for i in range(0,y):
        for j in range(0,x):
            s.create_image(b,c, anchor=NW, image=coverimg, tags="I don't know what to put in here")
            b += 33
        b = 0
        c += 33
        
def reveal(event):
    for i in range(0,y):
        for j in range(0,x):
            s.delete("I don't know what to put in here")
    
s.bind("<Button-1>", reveal)`

标签: pythonimagetkinter

解决方案


from tkinter import *
imgtags=[]
def cover():
    b = 0
    c = 0
    for i in range(0,y):
        for j in range(0,x):
            s.create_image(b,c, anchor=NW, image=coverimg, tags=f"img{x}_{y}")
            imgtags.append(f"img{x}_{y}")
            b += 33
        b = 0
        c += 33
        
def reveal(event):
    for tag in imgtags:
            s.delete(tag)
    
s.bind("<Button-1>", reveal)

在这里,我们正在f-string为标签创建一个名称。然后,我们将我们创建的标签添加到imgtags列表中。所以,现在这个列表将包含我们需要的所有标签。

现在,当您想要进行显示时,我们使用for循环访问每个标签,然后将其传递给s.delete以便删除图像。
我希望它能澄清你的疑问。

如果您想了解更多信息f-strings,请参阅此处


推荐阅读