I am new to python and trying to make a Tkinter label which would change its image at run time. Here is my code:
from Tkinter import *
from PIL import ImageTk, Image
import os
import time
#time.sleep(1)
class projector:
def __init__(self):
self.root = Tk()
self.frame = Frame(self.root)
self.label = Label(self.frame )
self.number = 1
def callback(self,e):
self.changeimage()
def check(self):
scr_height = self.root.winfo_screenheight()
scr_width = self.root.winfo_screenwidth()
image_src = "img/pattern/1.png"
im_temp = Image.open(image_src)
im_temp = im_temp.resize((scr_width, scr_height), Image.ANTIALIAS)
im_temp.save("ArtWrk.ppm", "ppm")
photo = PhotoImage(file="artwrk.ppm")
self.label.configure(image=photo)
self.label.pack()
self.frame.pack()
self.root.bind("<Return>", self.callback)
self.root.geometry("{0}x{1}+0+0".format(scr_width, scr_height))
#self.root.overrideredirect('true')
self.root.mainloop()
def nextpattern(self):
abc=''
def changeimage(self):
self.number= self.number+1;
path = "img/pattern/"+str(self.number)+".png"
self.image = ImageTk.PhotoImage(Image.open(path))
self.label.config(image = self.image)
print "loaded image "+ str(self.number)
def main():
projector().check()
if __name__ == "__main__":
main()
it works well if changeimage() method is attached to event listener and give sequence of images when enter is pressed. But when I try to change the label image using a loop it just shows me last image. Any suggestions how I can use changeimage() im loop ?? Help would be really appriciated.