python - 如何删除 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)`
解决方案
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
,请参阅此处。
推荐阅读
- php - 使用 mpdf 从动态数据创建 pdf
- jhipster - 无法从 JHipster UAA 获取 OAUTH2 令牌
- java - 与 Hibernate 的多个一对一
- bash - 如何在bash脚本中输入密码来解锁密钥
- jquery - 使用 jquery 垂直滚动
- python - 将多个字符串值合并到一个 df 列中
- python - 如何在 Tkinter 中同时将两个绑定到同一个小部件?
- php - 从 db 中按字符串对数组进行排序
- typo3 - 通过 URL 别名 (RealURL) 获取页面 UID
- javascript - PrimeNG
“无效时间”和“value.getDate 不是函数”错误