Если я сохраню элемент canvas в переменной, я ожидаю, что он будет сохранен как объект tkinter.rectangle, который я смогу использовать позже.
rec = can.create_rectangle(l, fill="blue")
Но вместо этого сохраняется как целое число << class 'int' >>
from tkinter import Tk, Canvas, Button
def press(canv, rect):
print("pressed")
canv.move(rect, 10)
l = [50,100,100,200]
root = Tk()
can = Canvas(root)
can.pack()
rec = can.create_rectangle(l, fill="blue")
print("rec",rec) #1
print("type(rec) ", type(rec)) #<class 'int'>
b = Button(root, text="NOTHING", command=lambda:press(can, rec))
b.pack()
print("type(b) = ",type(b)) #<class 'tkinter.Button'>
print("b = ",b) #TCL id like .41549040
root.mainloop()
При запуске этого кода возвращается ошибка:
_tkinter.TclError: wrong # args: should be ".21823184 move tagOrId xAmount yAmount"
Почему он имеет тип integer и как получить идентификатор элемента canvas, чтобы переместить его позже?