Mediocre Person wrote:
What I want: A little window to open with a 0 in it. Every second, the 0 should increment by 1. What I get: A one second delay, see the window with a 1 in it, and then nothing appears to happen. Never see the 0, never see a 2. Any quick clues? Thanks. Nick. (Python 2.4, Win98).
simple solution:
def run(self): #also tried self,parent sleep(1.0) self.time = self.time + 1 self.display["text"] = str(self.time) self.update() # make sure to process all outstanding events
smarter solution:
def run(self): self.display["text"] = str(self.time) self.time = self.time + 1 self.after(1000, self.run) # no need to use update in this case
even smarter solution:
import time
TICK = 1.0 # time between updates, in seconds
def run(self): self.display["text"] = str(self.time) self.time = self.time + 1 delay = TICK - (time.time() % TICK) self.after(int(delay*1000), self.run) # no need to use update in this case
also see:
http://tkinter.unpythonic.net/wiki/TkinterDiscuss
</F>
-- http://mail.python.org/mailman/listinfo/python-list