root/stuff/sandbox/miniwck/testclock.py
| Revision 336 (by effbot, 05/04/06 15:33:20) |
|---|
# $Id$ # wck test program # derived from # http://www.effbot.org/zone/tkinter3000-demo-clock.htm from MiniWCK import Widget import time class TextMixin: def ui_handle_resize(self, width, height): self.size = width, height def ui_handle_repair(self, draw, x0, y0, x1, y1): self.ui_text_draw(draw) def ui_text_draw(self, draw, text=None): size = self.size if text is None: text = self.ui_text_get() width, height = draw.textsize(text, self.font) draw.text(((size[0]-width)/2, (size[1]-height)/2), text, self.font) def ui_text_get(self): raise NotImplementedError, "must override text_get" class Clock(TextMixin, Widget): ui_option_height = 2 * 30 ui_option_width = 30 * 20 ui_doublebuffer = 1 def __init__(self, master, **options): self.font = self.ui_font("black", "Helvetica") self.__time = None self.ui_init(master, options) self.__update() def __update(self): t = int(time.time()) if t != self.__time: self.ui_damage() # force update self.__time = t self.after(100, self.__update) def ui_handle_repair(self, draw, x0, y0, x1, y1): self.ui_text_draw(draw) def ui_text_get(self): return time.ctime(self.__time) win = Clock(None, title="MiniWCK", background="white") win.mainloop()
Note: See TracBrowser for help on using the browser.
