Python Tkinter ~ canvas.delete()

问题描述

如何使用 canvas.delete() 删除画布的特定图像标签? 我应该把 'img' 作为参数还是需要其他东西?

ball = PhotoImage(file='ball.png')
[Class Name and __init__]
self.canvas.delete('img')
self.canvas.create_image(self.getCoordinates()[0],self.getCoordinates()[1],image=ball)

解决方法

创建画布对象会返回一个 id。您可以将该 ID 传递给 delete 方法。

self.image_id = self.canvas.create_image(...)
...
self.canvas.delete(self.image_id)
,

是的,要删除带有标签的项目,首先您需要使用 tagtk.Canvas.create_xxxxx(...,tag='item1') 选项分配标签:

self.canvas.create_image(self.getCoordinates()[0],self.getCoordinates()[1],image=ball,tag='img')