canvas работа со списком объектов

Мне нужно реализовать список из объектов canvas, в которомый при добавлении или удалении объекта из списка, в окне объекты сдвигались. Я написал добавление элемента в список, но дальше у меня ступор. Во-первых, у меня добавляется элемент в список, но в окне он сдвигается просто (пересоздаваясь на новых координатах) Во-вторых, я понять не могу как мне например из списка удалить именно второй элемент, в последующем например третьий (ведь после первого удаления он по логики должен стать вторым), то есть нужно ориентироваться как-то по именам желательно.

from tkinter import *
from PIL import ImageTk, Image

list = []
pos = 1
image = None

class test(Frame):
    def __init__(self, master):
        super().__init__(master)

        self.canvas = Canvas(root, width=800, height=600)
        self.canvas.pack(fill="both", expand=True)

        self.bb = Button(self.canvas, text='OK', command=self.ski)
        self.bb.place(x=800/2, y=600/2)
        self.bc = Button(self.canvas, text='Del', command=self.ski2)
        self.bc.place(x=800/2, y=600/2)

    def ski(self):
        global pos, image
        self.img = Image.open('test.png'))
        self.img = self.img.resize((32, 32))
        self.img2 = ImageTk.PhotoImage(self.img)
        image = self.canvas.create_image(5+(pos*32), 5, anchor=NW, image=self.img2)
        list.append(self.image)
        print(list)
        pos+=1

    def ski2(self):
        list.remove(21)
        self.canvas.delete(image)
        print(list)

if __name__ == "__main__":
    root = Tk()
    app = test(root)
    root.mainloop()

Ответы (0 шт):