One of the first things I always look for when exploring
a new computer interface is a clock. Because I spend so much time
glued to computers, it's essentially impossible for me to keep track
of the time unless it is right there on the screen in front of me (and
even then, it's iffy). The next program, PyClock, implements such a
clock widget in Python. It's not substantially different from the
clock programs that you may be used to seeing on the X Window System.
Because it is coded in Python, though, this one is both easily
customized and fully portable among Windows, the X Window System, and
Macs, like all the code in this chapter. In addition to advanced GUI
techniques, this example demonstrates Python
time module tools.
Before I show you PyClock, though, let me provide a little background and a confession. Quick—how do you plot points on a circle? This, along with time formats and events, turns out to be a core concept in clock widget programs. To draw an analog clock face on a canvas widget, you essentially need to be able to sketch a circle—the clock face itself is composed of points on a circle, and the second, minute, and hour hands of the clock are really just lines from a circle's center out to a point on the circle. Digital clocks are simpler to draw, but not much to look at.
Now the confession: when I started writing PyClock, I couldn't answer the last paragraph's opening question. I had utterly forgotten ...