Each window component
contains a dictionary of its attributes.
After a component has been added to the application window, the
programmer can access and modify its attributes by using the subscript with the
name of the attribute (a string), as follows:
widget[attribute name]
widget[attribute name] = value
For example, a label has a
text font and a foreground color that can be modified in this manner. A label also can show either text or an
image, depending on the setting of these attributes. The next program, which displays an
image and a caption, shows how to set the image, font, and color attributes of
labels.
"""File: imagedemo.py."""
from breezypythongui
import EasyFrame
from tkinter
import PhotoImage,
N, S, W, E
from tkinter.font
import Font
class ImageDemo(EasyFrame):
"""Displays
an image and a caption."""
def __init__(self):
"""Sets up the window and
widgets."""
EasyFrame.__init__(self,
title = "Image Demo")
imageLabel = self.addLabel(text
= "",
row = 0, column = 0,
sticky = N+S+W+E)
textLabel = self.addLabel(text
= "Smokey the cat",
row = 1, column = 0,
sticky = N+S+W+E)
# Load the image and associate it with the image label.
self.image = PhotoImage(file
= "smokey.gif")
imageLabel["image"] = self.image
# Set the font and color of the caption.
font = Font(family = "Verdana",
size = 20, slant = "italic")
textLabel["font"]
= font
textLabel["foreground"]
= "blue"
#Instantiate and pop up the window.
ImageDemo().mainloop()
Note that this program
must import the PhotoImage and Font
classes and the constants N,
S, W,
and E from the relevant
tkinter modules.
These constants are used to center the two labels in their respective
grid cells, overriding the default placement of a label to the northwest. Here is the window produced by the
program:
|