#this part does NOT respond. Why? Please help!
cv.delete((str(11),))
Приведенный выше код такой же, как и этот:
tag = str((str(11),))
cv.delete(tag)
Когда вы изучите tag
, вы увидите, что значением является строка ('11',)
.Tkinter будет искать элемент canvas буквально с 7-байтовым тегом ('11',)
.У вас нет элементов на холсте с этим тегом.
Часть проблемы заключается в том, что вы пытаетесь создать объект и присвоить ему тег, представляющий собой комбинацию из двух целых чисел.Это недопустимый тег для элемента Canvas, поскольку tkinter не может отличить тег от идентификатора элемента Canvas, который является целым числом.Тэги Canvas могут быть любой произвольной строкой , за исключением для последовательности, состоящей только из цифр.
В коде, который создает овал, если вы хотите применить пользовательский тег, он не должен быть в виде целого числа.Например, вы можете добавить один символ, чтобы сделать ваш тег правильным.Тогда вам просто нужно использовать тот же тег в вашем коде:
cc="o" + str(row)+str(col)
cv.create_oval(coords, fill=clr, tags=(cc,))
...
cv.delete("o11")