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

Reply via email to