Как мне создать слайд-шоу из изображений в tkinter canvas?

#python #tkinter

#python #tkinter

Вопрос:

Я пытаюсь создать слайд-шоу из изображений с помощью tkinter, но будет отображаться только первое изображение. Вот MCVE моего кода:

 from tkinter import *
from PIL import ImageTk, Image

# create window
window = Tk()
window.geometry('1000x1000')


# function to display a series of images with a delay of 3seconds between each
def slideshow():
    for i in range(3):
        entry.delete(0, END)
        canvas.delete("all")
        entry.insert(0, str(i))
        path = ('image'   str(i)   '.png')
        image = ImageTk.PhotoImage(Image.open(path))
        canvas.create_image(100, 100, anchor=CENTER, image=image)
        window.after(3000)
        window.mainloop()

# create widgets
buttonDisplayImages = Button(window, width=30, height=15, text='Display Images', command=lambda: slideshow())
entry = Entry(window, width=35, borderwidth=2)
canvas = Canvas(window, width=300, height=300)

buttonDisplayImages.grid(row=2, column=1)
entry.grid(row=1, column=1)
canvas.grid(row=3, column=1)

window.mainloop()
  

Когда я нажимаю кнопку, отображается только первое изображение, и когда я закрываю окно, я получаю сообщение об ошибке:

_tkinter.TclError: недопустимое имя команды «.!запись»

Любая помощь будет оценена.

Комментарии:

1. Вы не должны вызывать window.mainloop() внутри цикла for и add canvas.image = image и canvas.update_idletasks() before window.after(3000) .

2. Это исправлено, большое спасибо!