Когда вы удаляете изображение холста в функции changeImg()
, бесполезно пытаться настроить изображение холста.
canvas.delete("all")
Решением было бы создать новый PhotoImage и назначить его новому изображению холста.
Затем, как всегда, вы должны сохранить ссылку на изображение, или Tkinter забудет об этом, когда функция завершится.
from tkinter import *
import threading
view=Tk()
canvas=Canvas(view,width=800, height=800)
canvas.pack()
myImage=PhotoImage(file='a.png')
canvas.create_image(0,0,anchor=NW,image=myImage)
def changeImg():
print("ı came")
canvas.delete("all")
myImage = PhotoImage(file='add.png') # Create new
canvas.create_image(0,0,anchor=NW,image=myImage) # Create new
canvas.image = myImage # Save reference to new image
view.update()
timer=threading.Timer(2.0, changeImg)
timer.start()
view.mainloop()