[Tutor] Continuously slower program

Seiji Funai seiji_funai@yahoo.com
Tue, 11 Jun 2002 16:57:28 -0700 (PDT)


--0-1648986577-1023839848=:35018
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

This is a test for the beginning of a meter that I'm
writing for a GUI.  The application slows
continuously.  Does my computer just suck, or is there
something I can do?  Please let me know.

Thanks!

__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com
--0-1648986577-1023839848=:35018
Content-Type: text/plain; name="testMeter.py"
Content-Description: testMeter.py
Content-Disposition: inline; filename="testMeter.py"

from Tkinter import *
import math

class TestMeter:
  def __init__(self, master):
    testMeterFrame = Frame(master)
    testMeterFrame.pack()
    self.count = 0
    self.box = 8, 8, 57, 57
    self.testMeterCanvas = Canvas(testMeterFrame, bg = "gray", width = 65, height = 65)
    self.testMeterCanvas.grid(row = 1, column = 1)
    self.testMeterCanvas.create_oval(2, 2, 63, 63, fill = "black")
    self.testMeterCanvas.create_oval(5, 5, 60, 60, fill = "gray")
    self.testMeterCanvas.create_arc(self.box, start = 0, extent = 180, fill = "white")
    self.testMeterCanvas.create_line(33, 33, 33, 8, fill = "red")
    self.testMeterCanvas.create_text(33, 47, text = "M1")
    self.testMeterCanvas.create_text(10, 38, text = "0")
    self.testMeterCanvas.create_text(55, 38, text = "1")
    self.startButton = Button(testMeterFrame, text = "Start", command = self.start)
    self.startButton.grid(row = 2, column = 1, sticky = W+E+N+S)

  def start(self):
    self.testMeterCanvas.create_arc(self.box, start = 0, extent = 180, fill = "white")
    while 1:
      self.count = self.count + .1
      if self.count == 1000:
        self.count = 0
      self.testMeterCanvas.create_arc(self.box, start = 0, extent = 180, fill = "white")
      self.x = 25 * math.sin(self.count) + 33
      self.y = -25 * math.fabs(math.cos(self.count)) + 33
      self.testMeterCanvas.create_line(33, 33, self.x, self.y, fill = "red")      
      root.update()
    
  def stop(self):
    self.testMeterCanvas.create_arc(self.box, start = 0, extent = 180, fill = "white")
    self.testMeterCanvas.create_line(33, 33, 33, 8, fill = "red")
    
root = Tk()
testMeter = TestMeter(root)
root.mainloop()

--0-1648986577-1023839848=:35018--