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

Popular posts from this blog

Blogger: format your code (java, python, etc.) in your blog

I used prettyPrint to auto-format codes in my blogger. You don't need to download but link to it as follows: Step 1: Go to Customize -> Edit HTML , paste the following code inside tag <head> </head> <link href='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css' rel='stylesheet' type='text/css'/> <script src='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js' type='text/javascript'/> Step 2: Change tag <body> to <body onload='prettyPrint()'> Step 3: How to use: Put your code inside the following tag: <pre class="prettyprint"> <!-- your code here --> </pre> Note that you can also change and upload your own css file and link to that address to format your code.

OpenOffice: Chart X Axis Format Scale

After doing the experiments, I drew graphs using OpenOffice. First, I used chart type: Column and Line. Then I couldn't format Chart X Axis (i.e., cannot untick "Automatic" to change the value of Scale Minimum, Maximum, etc.) Finally, I figured out that I should have used Chart type: XY (Scatter), since in the other Chart types, it considers X Axis value as Text.