~brian-sidebotham/wxwidgets-cmake/wxpython-2.9.4

« back to all changes in this revision

Viewing changes to wxPython/samples/wxPIA_book/Chapter-18/timer.py

  • Committer: Brian Sidebotham
  • Date: 2013-08-03 14:30:08 UTC
  • Revision ID: brian.sidebotham@gmail.com-20130803143008-c7806tkych1tp6fc
Initial import into Bazaar

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import wx
 
2
import time
 
3
 
 
4
class ClockWindow(wx.Window):
 
5
    def __init__(self, parent):
 
6
        wx.Window.__init__(self, parent)
 
7
        self.Bind(wx.EVT_PAINT, self.OnPaint)
 
8
        self.timer = wx.Timer(self)
 
9
        self.Bind(wx.EVT_TIMER, self.OnTimer, self.timer)
 
10
        self.timer.Start(1000)
 
11
 
 
12
    def Draw(self, dc):
 
13
        t = time.localtime(time.time())
 
14
        st = time.strftime("%I:%M:%S", t)
 
15
        w, h = self.GetClientSize()
 
16
        dc.SetBackground(wx.Brush(self.GetBackgroundColour()))
 
17
        dc.Clear()
 
18
        dc.SetFont(wx.Font(30, wx.SWISS, wx.NORMAL, wx.NORMAL))
 
19
        tw, th = dc.GetTextExtent(st)
 
20
        dc.DrawText(st, (w-tw)/2, (h)/2 - th/2)
 
21
        
 
22
    def OnTimer(self, evt):
 
23
        dc = wx.BufferedDC(wx.ClientDC(self))
 
24
        self.Draw(dc)
 
25
 
 
26
    def OnPaint(self, evt):
 
27
        dc = wx.BufferedPaintDC(self)
 
28
        self.Draw(dc)
 
29
 
 
30
class MyFrame(wx.Frame):
 
31
    def __init__(self):
 
32
        wx.Frame.__init__(self, None, title="wx.Timer")
 
33
        ClockWindow(self)
 
34
        
 
35
 
 
36
app = wx.PySimpleApp()
 
37
frm = MyFrame()
 
38
frm.Show()
 
39
app.MainLoop()