Поскольку img
будет перезаписано новым экземпляром ImageTk.PhotoImage(...)
в цикле for, поэтому предыдущая ссылка img
будет потеряна, а предыдущее изображение будет уничтожено.Чтобы преодолеть это, объявите глобальный список для хранения ссылки на изображение, как показано ниже:
imagefiles = ['W.jpg', 'P.jpg', 'D.jpg', 'H.jpg', 'M.jpg', 'F.jpg']
images = [] # list to hold the image references
for col, array in enumerate((a, b, c, d, e)):
for ro, item in enumerate(array):
images.append(ImageTk.PhotoImage(Image.open(imagefiles[item]))) # save the image reference
Label(window, image=images[-1]).grid(row=col, column=ro)
Или вы можете прикрепить ссылку на изображение к экземпляру Label, как показано ниже:
imagefiles = ['W.jpg', 'P.jpg', 'D.jpg', 'H.jpg', 'M.jpg', 'F.jpg']
for col, array in enumerate((a, b, c, d, e)):
for ro, item in enumerate(array):
lbl = Label(window)
lbl.grid(row=col, column=ro)
lbl.image = ImageTk.PhotoImage(Image.open(imagefiles[item])) # attach the image reference to label instance variable
lbl.config(image=lbl.image)