wx.Timer not working

Mike Driscoll kyosohma at gmail.com
Sat Jul 26 20:48:13 EDT 2008


On Jul 26, 5:22 pm, 5lvqbw... at sneakemail.com wrote:
> On Jul 26, 3:13 pm, Mike Driscoll <kyoso... at gmail.com> wrote:
>
>
>
> > On Jul 26, 2:33 pm, 5lvqbw... at sneakemail.com wrote:
>
> > > Windows XP SP3
> > > Python 2.5
> > > wx.version() = '2.8.1.1 (msw-unicode)'
> > > ------
> > > I have written the following *simplest* implementation of wx.timer I
> > > can think of.  No workie.   I want an exception, a print statement, or
> > > something.
>
> > > The wxpython demos all work, but for some reason this isn't.  The
> > > demos are simple and straghtforward, so I think I understand how it
> > > should work.  Clues please?  I've tried variations of ID's, SetOwners,
> > > using and redefining Notify(), Bind, Connect, etc.  In the cases where
> > > the interpreter doesn't complain about passed argument types, the
> > > callback function is never called.
>
> > > import wx
>
> > > class MyFrame(wx.Frame):
> > >         def __init__(self, parent, id, title):
> > >                 wx.Frame.__init__(self, parent, id,     title, pos=(100, 100))
>
> > >                 timer = wx.Timer(self, -1)
> > >                 self.Bind(wx.EVT_TIMER, self.OnTick, timer)
> > >                 timer.Start(100)
>
> > >         def OnTick(self, event):
> > >                 print 'Hi. Bye.'
> > >                 1/0 #<-- should crash as evidence callback is being called
>
> > > class MyApp(wx.App):
> > >         def OnInit(self):
> > >                 frame1 = MyFrame(None, wx.ID_ANY, "This is a test")
> > >                 frame1.Show(True)
> > >                 return True
>
> > > app     = MyApp(0)
> > > app.MainLoop()
>
> > > Thanks for any advice!!
>
> > > Michael
>
> > I'm not seeing anything either. Please post this to the wxPython
> > user's group for additional help:
>
> >http://www.wxpython.org/maillist.php
>
> > Mike
>
> I think I figured it out.  By looking at the wxTimer example here:http://wiki.wxpython.org/AnotherTutorial#head-420329f7c159d81cb03a6dd...
>
> My code created a temporary timer object and did not make it a class
> member.  When I changed it to be a class member with self.timer, then
> it worked.
>
> thanks
> Michael

Ah...I didn't even think about that. I noticed I had self.timer in my
code, but I didn't realize it was required. Sorry I wasn't of more
help. Still, you can learn a lot from the wxPython user's group just
by reading other people's posts.

Mike



More information about the Python-list mailing list