Skip to main content

Python Tkinter: Changing background images using key press


Let's write a simple Python application that changes its background image everytime you click on it. Here is a short code that helps you do that:

 
import os, sys
import Tkinter
import Image, ImageTk
def key(event):
    print "pressed", repr(event.char)
    event.widget.quit()

root = Tkinter.Tk()
root.bind_all('', key)

root.geometry('+%d+%d' % (100,100))
dirlist = os.listdir('.')
old_label_image = None

for f in dirlist:
    try:
        image1 = Image.open(f)
        root.geometry('%dx%d' % (image1.size[0],image1.size[1]))
        tkpi = ImageTk.PhotoImage(image1)
        label_image = Tkinter.Label(root, image=tkpi)
        label_image.place(x=0,y=0,width=image1.size[0],height=image1.size[1])
        root.title(f)
        if old_label_image is not None:
            old_label_image.destroy()
        old_label_image = label_image
        root.mainloop() # wait until user clicks the window
    except Exception, e:
        # Skip anything not an image without raising any errors
        pass

Comments