This should do the job.
Jean-Michel Fauth, Switzerland
#-*- coding: iso-8859-1 -*-
···
#---------------------------------------------------------------------
# Name: displayletters.py
# Purpose: ...
# Author: Jean-Michel Fauth, Switzerland
# Copyright: (c) 2005 Jean-Michel Fauth
# Licence: GPL
#---------------------------------------------------------------------
# os dev: windows 98
# py dev: Python 2.4.2
# wx dev: wxPython 2.6.1
# Revision: 23 November 2005
#---------------------------------------------------------------------
import wx
#-------------------------------------------------------------------
class MyPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
self.parent = parent
self.dt = 500 #ms
self.i = 0
self.txt = wx.TextCtrl(self, wx.NewId(), '', (-1, -1), (-1, -1))
self.but1 = wx.Button(self, wx.NewId(), 'start timer', (-1, -1), wx.DefaultSize)
self.but1.Bind(wx.EVT_BUTTON, self.OnClick1)
self.but2 = wx.Button(self, wx.NewId(), 'stop timer', (-1, -1), wx.DefaultSize)
self.but2.Bind(wx.EVT_BUTTON, self.OnClick2)
self.timer1 = wx.Timer(self, wx.NewId()) #not running
self.Bind(wx.EVT_TIMER, self.OnTimer1)
sizer1 = wx.BoxSizer(wx.VERTICAL)
b = 10
sizer1.Add(self.txt, 0, wx.GROW | wx.ALL, b)
sizer1.Add(self.but1, 0, wx.ALL, b)
sizer1.Add(self.but2, 0, wx.ALL, b)
self.SetSizerAndFit(sizer1)
self.parent.SetClientSize(sizer1.GetSize())
self.but1.SetFocus()
def OnClick1(self, event):
self.timer1.Start(self.dt)
def OnClick2(self, event):
self.timer1.Stop()
def OnTimer1(self, event):
letters = 'abcdefghijklmnopqrstuvwxyz'
c = letters[self.i]
if self.i < len(letters) - 1:
self.i = self.i + 1
else:
self.i = 0
self.txt.SetValue((' ' + c) * 5)
#-------------------------------------------------------------------
class MyFrame(wx.Frame):
def __init__(self, parent, id):
s = __file__
wx.Frame.__init__(self, parent, id, s, (0, 0), (-1, -1))
self.pa = MyPanel(self)
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
def OnCloseWindow(self, event):
self.pa.timer1.Stop()
self.Destroy()
#-------------------------------------------------------------------
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1)
frame.Show(True)
self.SetTopWindow(frame)
return True
#-------------------------------------------------------------------
def main():
app = MyApp(False)
app.MainLoop()
#-------------------------------------------------------------------
if __name__ == "__main__" :
main()
#eof-------------------------------------------------------------------