gpt4 book ai didi

python - 能够删除具有特定对象标签 tkinter 的所有项目

转载 作者:行者123 更新时间:2023-12-04 18:33:00 25 4
gpt4 key购买 nike

我在 tkinter Canvas 中有几个不同的对象标签。我希望用户能够删除带有标签 "token" 的鼠标光标下的当前对象.
我不想要所有带有标签 "token" 的对象要删除的,只有鼠标光标下的那个。我想要任何带有标签 "token" 的元素能够被删除。我想禁止删除带有标签的对象 "line" .我试过了:

self.canvas.delete("current")
但这允许我删除鼠标光标下的任何内容(包括线对象)。当我尝试
self.canvas.delete("token")
这允许我删除所有带有标签 "token" 的项目一次全部。这是我的线对象定义的摘录, "token"对象,以及我的删除功能:
 # create static line
self.canvas.create_line(50,250,200,250, width=7, fill="grey", tags="line")

#Create oval
myoval = self.canvas.create_oval(x0,y0,x1,y1, width=10, outline="black", fill="black",
tags="token")


def on_button_press_deleteoval(self,event):
'''Delete oval with double button 1 click.'''
self.canvas.delete("current")

最佳答案

你可以走很长的路:

if 'token' in canvas.gettags(canvas.find_withtag('current')):
canvas.delete('current')

或使用快捷方式:
canvas.delete('current&&token') #logical operator in tag search expression

# && = AND, || = OR, ! = NOT

关于python - 能够删除具有特定对象标签 tkinter 的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37380959/

25 4 0