In Tkinter, graphical images are displayed by creating independent PhotoImage or BitmapImage objects, and then attaching those image objects to other widgets via image attribute settings. Buttons, labels, canvases, text, and menus can display images by associating prebuilt image objects in this way. To illustrate, Example 9-36 throws a picture up on a button.

Example 9-36. PP3E\Gui\Tour\

gifdir = "../gifs/"
from Tkinter import *
win = Tk( )
igm = PhotoImage(file=gifdir+"ora-pp.gif")
Button(win, image=igm).pack( )
win.mainloop( )

I could try to come up with a simpler example, but it would be tough—all this script does is make a Tkinter PhotoImage object for a GIF file stored in another directory, and associate it with a Button widget’s image option. The result is captured in Figure 9-36.

imgButton in action

Figure 9-36. imgButton in action

PhotoImage and its cousin, BitmapImage, essentially load graphics files and allow those graphics to be attached to other kinds of widgets. To open a picture file, pass its name to the file attribute of these image objects. Canvas widgets—general drawing surfaces discussed in more detail later in this tour—can display pictures too; Example 9-37 renders Figure 9-37.

An image on canvas

Figure 9-37. An image on canvas

Example 9-37. PP3E\Gui\Tour\

gifdir = "../gifs/" ...

Get Programming Python, 3rd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.