essaie : timer et horloge
bonjour,
voilà j'essaye de faire une petite horloge... pour l'instant ce n'est que le debut, donc il n'y que l'aiguille des secondes..
Cependant j'ai deja un probleme : voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| class Horloge(Thread):
def __init__(self, master) :
Thread.__init__(self)
self._root = master
self._w = Canvas(self._root, width=300, height=300)
self._w.pack()
self._w.create_oval(10,10,210,210)
seconde = self._w.create_line(110, 110, 110, 10)
self._i = 1
def start(self):
tpsPrec = time()
while True:
tps = time()
if tps - tpsPrec >= 1:
self.tournerAiguille()
tpsPrec = tps
def tournerAiguille(self):
nouvx = 110 + cos(2*pi / 60 * (self._i % 60) - pi/2) * 100
nouvy = 110 + sin(2*pi / 60 * (self._i % 60) - pi/2) * 100
self._w.delete(self._seconde)
self._seconde = self._w.create_line(110, 110, nouvx, nouvy)
self._i += 1
self._root.update()
#pour la lancer :
h = Horloge(root)
h.start() |
mon probleme : cela ralentit tout mon programme et quand je ferme l'application j'ai comme erreur :
Citation:
File "D:\......py", line 820, in creerWidgets
self._horloge.start()
File "D:\......py", line 56, in start
self.tournerAiguille()
File "D:\......py", line 62, in tournerAiguille
self._w.create_line(110, 110, nouvx, nouvy)
File "D:\Logiciels\Python\lib\lib-tk\Tkinter.py", line 2090, in create_line
return self._create('line', args, kw)
File "D:\Logiciels\Python\lib\lib-tk\Tkinter.py", line 2076, in _create
return getint(self.tk.call(
TclError: invalid command name ".19885912.19885392"
je comprends pas....
merci de votre aide
edit : en fait il faut redefinir la fonction RUN et non START (je laisse pour montrer mon erreur) mais je cherche tjrs des optimisations.... de plus je ne sais pas comment l'arreter quand on ferme l'application (en cliquant sur la croix.. car il reste lancé)