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 :
mon probleme : cela ralentit tout mon programme et quand je ferme l'application j'ai comme erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()
je comprends pas....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"
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é)
Partager