import wx |
|
|
import time |
|
|
|
class ClockWindow(wx.Window): |
|
def __init__(self, parent): |
|
wx.Window.__init__(self, parent) |
|
self.Bind(wx.EVT_PAINT, self.OnPaint) |
|
self.timer = wx.Timer(self) |
|
self.Bind(wx.EVT_TIMER, self.OnTimer, self.timer) |
|
self.timer.Start(1000) |
|
|
|
def Draw(self, dc): |
|
t = time.localtime(time.time()) |
|
st = time.strftime("%I:%M:%S", t) |
|
w, h = self.GetClientSize() |
|
dc.SetBackground(wx.Brush(self.GetBackgroundColour())) |
|
dc.Clear() |
|
dc.SetFont(wx.Font(30, wx.SWISS, wx.NORMAL, wx.NORMAL)) |
|
tw, th = dc.GetTextExtent(st) |
|
dc.DrawText(st, (w-tw)/2, (h)/2 - th/2) |
|
|
|
def OnTimer(self, evt): |
|
dc = wx.BufferedDC(wx.ClientDC(self)) |
|
self.Draw(dc) |
|
|
|
def OnPaint(self, evt): |
|
dc = wx.BufferedPaintDC(self) |
|
self.Draw(dc) |
|
|
|
class MyFrame(wx.Frame): |
|
def __init__(self): |
|
wx.Frame.__init__(self, None, title="wx.Timer") |
|
ClockWindow(self) |
|
|
|
|
|
app = wx.PySimpleApp() |
|
frm = MyFrame() |
|
frm.Show() |
|
app.MainLoop() |