Am 10.09.2010 16:11, schrieb Albert-Jan Roskam:
Hi Jan,

Here's a screendump of my program: http://nl.tinypic.com/r/2qtlojc/7 .
This might make my description a little bit clearer. The beautiful
sunset will in reality be a dull, handwritten form. ;-)

Regarding the iterator pattern, I was referring to this:
http://www.suttoncourtenay.org.uk/duncan/accu/pythonpatterns.html#iterators-and-generators
Inside my program I have to keep a list of all the image files that are
scheduled for data entry. The main purpose is to be able to read in the
image files one by one. Another one of the purposes of this list is to
show some information on the title bar. Currently, my program only has a
'next' button and the fact that implementing a 'previous' button is
causing problems suggests to me that I have to look for a more
fundamentally better solution.
Sounds to me that the easiest solution would be to simply use a list to hold the images, a reference to the current image and your desired methods in a class.

class ImageStack(object):

    def __init__(self, images=None)
        self.images = images or []
        self.current_image = None

    def next_image(self):
        if self.current_image:
            current_index = self.images.index(self.current_image)
            try:
                next_image = self.images[current_index + 1]
            except IndexError:
                print "All images done" # or return the first one
        else:
            next_image = self.images[0]
        self.current_image = next_image
        return next_image

    def prev_image(self):
        if self.current_image:
            current_index = self.images.index(self.current_image)
            try:
                prev_image = self.images[current_index - 1]
                self.current_image = next_image
                return next_image
            except IndexError:
                print "There's no prev image"
        print "There's no current image"


You could also track the current_index instead of the current_image. That would make the class easier, but how to track the current image depends on what other methods you need.

HTH,

Jan

Cheers!!
Albert-Jan
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to