Tkinter can';t使用对象标记(字符串)从数组中删除画布项

Tkinter can';t使用对象标记(字符串)从数组中删除画布项,tkinter,tkinter-canvas,Tkinter,Tkinter Canvas,无法使用对象标记(字符串)从数组中删除画布项 从Tk文件: 每个项目也可以有任意数量的标签与其关联。标签 只是一个字符串,它可以采用除此之外的任何形式 整数的整数例如,'x123'是可以的,但是'123'不是… 从Tk文件: 每个项目也可以有任意数量的标签与其关联。标签 只是一个字符串,它可以采用除此之外的任何形式 整数的整数例如,'x123'是可以的,但是'123'不是… 上述代码与此相同: tag = str((str(11),)) cv.delete(tag) 当您检查标记时会看到值是字

无法使用对象标记(字符串)从数组中删除画布项

从Tk文件:

每个项目也可以有任意数量的标签与其关联。标签 只是一个字符串,它可以采用除此之外的任何形式 整数的整数例如,
'x123'
是可以的,但是
'123'
不是…

从Tk文件:

每个项目也可以有任意数量的标签与其关联。标签 只是一个字符串,它可以采用除此之外的任何形式 整数的整数例如,
'x123'
是可以的,但是
'123'
不是…

上述代码与此相同:

tag = str((str(11),))
cv.delete(tag)
当您检查
标记时
会看到值是字符串
('11',)
。Tkinter将查找一个带有7字节标签
('11')
的画布项。画布上没有任何带有该标记的项目

问题的一部分在于,您试图创建一个对象,并给它一个由两个整数组合而成的标记。这不是画布项的有效标记,因为tkinter无法将标记与画布项标识符(整数)区分开来。画布标记可以是除仅由数字组成的序列之外的任意字符串

在创建椭圆的代码中,如果要应用自定义标记,则它不能是整数形式。例如,可以预先添加单个字符以使标记正确。然后,您只需要在代码中使用相同的标记:

cc="o" + str(row)+str(col)
cv.create_oval(coords, fill=clr, tags=(cc,))
...
cv.delete("o11")
上述代码与此相同:

tag = str((str(11),))
cv.delete(tag)
当您检查
标记时
会看到值是字符串
('11',)
。Tkinter将查找一个带有7字节标签
('11')
的画布项。画布上没有任何带有该标记的项目

问题的一部分在于,您试图创建一个对象,并给它一个由两个整数组合而成的标记。这不是画布项的有效标记,因为tkinter无法将标记与画布项标识符(整数)区分开来。画布标记可以是除仅由数字组成的序列之外的任意字符串

在创建椭圆的代码中,如果要应用自定义标记,则它不能是整数形式。例如,可以预先添加单个字符以使标记正确。然后,您只需要在代码中使用相同的标记:

cc="o" + str(row)+str(col)
cv.create_oval(coords, fill=clr, tags=(cc,))
...
cv.delete("o11")