Kiran wrote: > I am creating 2 timers inside a GUI, but it seems that only the one > declared last (the second timer), gets triggered, but the first one > doesnt. >
You really should check the archives before posting. Exactly the same question was asked less than a week ago. The original question was answered by Nikie. I have quoted the reply verbatim - ---------------------------------------------------------------- The problem is not that the first timer is stopped, the problem is that both timers happen to call the same method in the end. Think of the "Bind" method as an assignment: it assigns a handler function to an event source. If you call it twice for the same event source, the second call will overwrite the first event handler. That's what happens in your code. The easiest way to change this is by using different ids for the timers: def startTimer1(self): self.t1 = wx.Timer(self, id=1) self.t1.Start(2000) self.Bind(wx.EVT_TIMER, self.OnUpTime, id=1) def startTimer2(self): self.t2 = wx.Timer(self, id=2) self.t2.Start(1000) self.Bind(wx.EVT_TIMER, self.OnTime, id=2) This way, the timers launch two different events, which are bound to two different methods. ---------------------------------------------------------------- I would suggest one minor change. Create a variable for the id using wx.NewId(), and pass the variable as an argument in both places, instead of hard-coding the id. That way you are guaranteed to get a unique id. In a large project it can be difficult to keep track of which id's have been used if they are all hard-coded. Frank Millman -- http://mail.python.org/mailman/listinfo/python-list