Prev: Python bindings tutorial
Next: using DictionaryServices module to get work with python2.6#OSXspecific
From: Sam Bull on 17 Mar 2010 04:43 I'm writing a pyGTK program, and I need to display the contents of a window for a few seconds before automatically moving on. I have tried using the time.sleep method, but this has problems, such as the program becoming unresponsive. I have now attempted to use a timer, but this does not seem to run the function at the end of the time. The code of my latest attempt: def next(self=None, testnum=10, testspeed=5): self.count += 1 #Sets label, telling the user the next word to memorise self.nobtns.set_markup("Word %s is: %s" % (self.count, self.words[self.count-1])) self.nobtns.show() if self.count == testnum: #When all words are shown self.nobtns.hide() else: self.timer = threading.Timer(testspeed, self.next, [testnum, testspeed]) self.timer.start() Putting a print statement at the beginning of the function, I can see that the function is not being run by the timer. Any help on getting this working would be appreciated. Thanks, Sam Bull
From: Peter Otten on 17 Mar 2010 05:16
Sam Bull wrote: > I'm writing a pyGTK program, and I need to display the contents of a > window for a few seconds before automatically moving on. I have tried > using the time.sleep method, but this has problems, such as the program > becoming unresponsive. > > I have now attempted to use a timer, but this does not seem to run the > function at the end of the time. The code of my latest attempt: > > def next(self=None, testnum=10, testspeed=5): > self.count += 1 > #Sets label, telling the user the next word to memorise > self.nobtns.set_markup("Word %s is: %s" % (self.count, > self.words[self.count-1])) > self.nobtns.show() > if self.count == testnum: #When all words are shown > self.nobtns.hide() > else: > self.timer = threading.Timer(testspeed, self.next, [testnum, > testspeed]) > self.timer.start() > > Putting a print statement at the beginning of the function, I can see > that the function is not being run by the timer. Any help on getting > this working would be appreciated. GUI toolkits usually have their own way of handling timeouts. I don't know pygtk, but the following looks promising: http://www.pygtk.org/pygtk2tutorial/ch-TimeoutsIOAndIdleFunctions.html Peter |