【问题标题】:How can get the Tag's object from the ID number如何从 ID 号中获取 Tag 的对象
【发布时间】:2022-01-18 04:05:38
【问题描述】:

我想知道是否有办法从他的 ID 中获取画布对象的标签。

我在一个游戏中工作,我需要删除所有具有相同标签的项目,但我只有这些对象中的一个 ID。示例:

root = Tk()
canvas = Canvas(root, width = x, height = y)
collider_object = canvas.create_*(any)*(coordnates_x, coordinates_y)

for i in range(5):
    for j in range(5):
        object_one = canvas.create_*(any)*(coordinates_x1, coordinates_y1, tag = '%i%i'%(i,j))
        object_two = canvas.create_*(any)*(coordinates_x2, coordinates_y2, tag = '%i%i'%(i,j))        
        object_three = canvas.create_*(any)*(coordinates_x3, coordinates_y3, tag = '%i%i'%(i,j))

ID = canvas.find_overlapping(object_collider*(coordinates)*)

canvas.delete(ID['tag'])

IDLE response: TypeError: 'int' object is not subscriptable

您如何看到具有相同标签但坐标不同的对象。这意味着它们不一定会与 collider_object 同时发生碰撞。

我需要从 ID 号中获取标签,所以当任何具有相同标签的对象与 collider_object 碰撞时,我会删除所有对象。

【问题讨论】:

  • 您提供的代码有语法错误。请提供有效代码。

标签: python tkinter canvas tags


【解决方案1】:

您可以使用itemcget 方法获取任何画布项的任何配置选项。

tags = canvas.itemcget(ID, "tags")

注意:这将返回一个字符串而不是一个列表。由于您的对象只有一个标签,这应该不是问题。

【讨论】:

    猜你喜欢
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    相关资源
    最近更新 更多