【问题标题】:How to get the canvas items that have some tags?如何获取具有一些标签的画布项目?
【发布时间】:2020-08-23 14:43:23
【问题描述】:

我想知道是否有办法获取画布中包含标签的所有项目。据我所知,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)

【问题讨论】:

    标签: python tkinter canvas


    【解决方案1】:

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

    来自 tk document:

    tagOrId 可以通过使用运算符来包含标签的逻辑表达式:“&&”、“||”、“^”、“!”和带括号的子表达式。

    【讨论】:

    • @Daniel:这里有一些关于 Canvas.find_withtag() 方法(和其他方法)的 Python 文档。
    • 好吧,我明白了。谢谢
    猜你喜欢
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多