Kevin Walzer wrote: > I'm trying to avoid a *lot* of typing in my Tkinter application by > associating image names with items in a list. Here is my sample list: > > self.catlist = [ > 'all', 'installed', 'base', 'crypto', 'database', 'devel', > 'editors', 'games', 'gnome', 'graphics', 'kde', 'languages', > 'libs', 'libs_perlmods', > 'libs_pythonmods', 'libs_rubymods', 'net', 'sci', 'shells', > 'sound', 'text', 'web', > 'x11_system', 'x11-wm', 'x11' > ] > > I've also already created a bunch of images with names that correspond > to the list above, i.e. self.all, self.installed, and so on. Here's the > rest of my code: > > for item in self.catlist: > print item > self.categorytable.insert(END, item) > self.categorytable.cellconfigure("end,0", image=self.item) > > This yields the following error: > > AttributeError: item > > because, of course, I don't actually have an image called self.item. > > What I'm trying to do is get the value of the variable "item" and plug > it into the image name, so that self.item actually corresponds to > self.installed, self.base, etc. Trying something like > > self.categorytable.cellconfigure("end,0", image=self.%s % item) > > just yields a syntax error: SyntaxError: invalid syntax > > Can anyone point me in the right direction?
Create a dictionary mapping the name to the image object. For example: # Create all your images first # Map a name to the image object self.catdict = {'all' : self.all, 'installed' : self.installed, .......} # Loop over the image names and do your stuff for item in self.catdict.keys(): print item self.categorytable.insert(END, item) self.categorytable.cellconfigure("end,0",image=self.catDict.get(item)) Regards, John -- http://mail.python.org/mailman/listinfo/python-list