能够删除具有特定对象标签 tkinter 的所有项目
Capability to delete all items with certain object tag tkinter
我在 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
我在 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