The scenario is this:

I want to loop around all of the images in a given directory (which I know will 
be images, but I guess I should check), show an image in a window, wait 2 
seconds and show the next one and repeat that indefinitley, which will be until 
the user closes the window.

This is the code I extracted from the larger program and made work - sort of - 
in a standalone fashion.  When I run the code, each of the file names gets 
displayed, and I can view the images, so it has to be something I am doing 
wrong with this chunk of code.  

However, I don't see what the problem is.

from Tkinter import *
import time
import os
import ImageTk
import Image

class externalLoopDisplay:
    
    def show(self):        
        #
        # Create a frame
        #
        self.window = Tk()
        self.f = Frame(self.window, bg="Gray")
        self.f.grid()
        self.btnRefresh = Button(self.f, text="Close", 
command=self.window.destroy, bg="Gray",highlightbackground="Red", 
highlightcolor="Green")
        self.btnRefresh.grid(row=0, column=2)
        self.loopImage()

    def loopImage(self):
        dir =  "Radar/net17"
        while 1:
            fileList = os.listdir(dir)
            number = len(fileList)
            c = 1
            for gifFile in fileList:
                print "externalLoopDisplay.show:","top of for loop " + str(c) + 
" of " + str(number)
                print "externalLoopDisplay.show:","showing file "  + dir + "/" 
+ gifFile
                self.window.title("Image " + str(c) + " of " + str(number))
                image = Image.open(dir + "/" + gifFile)
                canvasWidth, canvasHeight = image.size
                self.w = Canvas(self.f, width=canvasWidth, height=canvasHeight)
                photo = ImageTk.PhotoImage(image=image)
                netRadarImage = Label(self.w, image=photo)
                netRadarImage.image = photo
                self.w.grid(row=1, column=0, columnspan=3)
                netRadarImage.grid( row=1, column=0)
                time.sleep(10)
                c = c + 1
                self.w.destroy()

loop=externalLoopDisplay()
loop.show()

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to