wx.Timer not working

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • 5lvqbwl02@sneakemail.com

    wx.Timer not working

    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.Fram e):
    def __init__(self, parent, id, title):
    wx.Frame.__init __(self, parent, id, title, pos=(100, 100))

    timer = wx.Timer(self, -1)
    self.Bind(wx.EV T_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(Tru e)
    return True

    app = MyApp(0)
    app.MainLoop()


    Thanks for any advice!!

    Michael




  • Mike Driscoll

    #2
    Re: wx.Timer not working

    On Jul 26, 2:33 pm, 5lvqbw...@sneak email.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.Fram e):
            def __init__(self, parent, id, title):
                    wx.Frame.__init __(self, parent, id,     title, pos=(100, 100))
    >
                    timer = wx.Timer(self, -1)
                    self.Bind(wx.EV T_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, "Thisis a test")
                    frame1.Show(Tru e)
                    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:



    Mike

    Comment

    • 5lvqbwl02@sneakemail.com

      #3
      Re: wx.Timer not working

      On Jul 26, 3:13 pm, Mike Driscoll <kyoso...@gmail .comwrote:
      On Jul 26, 2:33 pm, 5lvqbw...@sneak email.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.Fram e):
              def __init__(self, parent, id, title):
                      wx.Frame.__init __(self, parent, id,    title, pos=(100, 100))
      >
                      timer = wx.Timer(self, -1)
                      self.Bind(wx.EV T_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(Tru e)
                      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:
      >

      >
      Mike

      I think I figured it out. By looking at the wxTimer example here:


      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

      Comment

      • Mike Driscoll

        #4
        Re: wx.Timer not working

        On Jul 26, 5:22 pm, 5lvqbw...@sneak email.com wrote:
        On Jul 26, 3:13 pm, Mike Driscoll <kyoso...@gmail .comwrote:
        >
        >
        >
        On Jul 26, 2:33 pm, 5lvqbw...@sneak email.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.Fram e):
                def __init__(self, parent, id, title):
                        wx.Frame.__init __(self, parent, id,     title, pos=(100, 100))
        >
                        timer = wx.Timer(self, -1)
                        self.Bind(wx.EV T_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(Tru e)
                        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:
        >>
        Mike
        >
        I think I figured it out.  By looking at the wxTimer example here:http://wiki.wxpython.org/AnotherTuto...159d81cb03a6dd...
        >
        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

        Comment

        Working...