Aug-25-2020, 02:37 PM
Hi
i have a problem with a frame gathering an image that i update every 2s. It through me the error:
Thanks for your help
i have a problem with a frame gathering an image that i update every 2s. It through me the error:
invalid command name "3186233555656<lambda>"
while executing
"3186233555656<lambda>"
("after" script)My code is the following:class MainCanvas(tk.Frame):
def __init__(self,container,directory,...):
...
self.directory=directory
self.container=container
self.canvas = tk.Canvas(self.container)
img=Image.open(self.directory)
self.photo=ImageTk.PhotoImage(img.resize(self.resolution, Image.ANTIALIAS))
self.canvas.image=self.photo
self.imageCreated = self.canvas.create_image(0, 0, anchor=NW, image=self.photo)
self.canvas.grid(...)
def change_image(self,list_directory,index):
directory=list_directory[index]
img=Image.open(directory)
if index==2:
nextindex=0
else:
nextindex=index+1
self.photo=ImageTk.PhotoImage(img.resize(self.resolution, Image.ANTIALIAS))
self.canvas.itemconfig(self.imageCreated,image=self.photo)
self.canvas.after(2000, lambda:self.change_image(list_directory, nextindex ))For me maybe the problem could come from the "loop", but i don't know how to solve it.Thanks for your help
