如何获取带有某些标签的画布项目?

Dan*_*era 0 python canvas tkinter

我想知道是否有办法获取画布中包含标签的所有项目。据我所知,该功能canvas.find_withtag(tag)只允许一个标签,我希望能够做到:canvas.find_withtag(tag0, tag1, ...)。基本上有一种干净的方法可以获取与多个标签匹配的物品,而无需使用套装。有没有一种干净的方法或者我必须使用 canvas.find_withtag(tag) 自己完成逻辑?

我实际上问的是是否有更好的方法来实现这一点:

itemstag1 = set(self.v_maps.canvas.find_withtag(tag1))
itemstag2 = set(self.v_maps.canvas.find_withtag(tag2))
for item in itemstag1 &itemstag2:
    self.canvas.itemconfig(item, fill=color)
Run Code Online (Sandbox Code Playgroud)

acw*_*668 6

您可以使用canvas.find_withtag(\'tag1||tag2\')

\n

来自 tk文件

\n
\n

tagOrId 可以使用运算符包含标签的逻辑表达式:\xe2\x80\x9c&&\xe2\x80\x9d、\xe2\x80\x9c||\xe2\x80\x9d、\xe2\x80\x9c^\xe2\ x80\x9d、\xe2\x80\x9c!\xe2\x80\x9d 和带括号的子表达式。

\n
\n