J'ai un programme avec une carte sur une toile. Lorsque je défile sur la carte, il affiche sur l'écran la longitude et la latitude de l'emplacement du pointeur de la souris, mis à jour en temps réel. De même, lorsque je bouge la souris, je montre le lever, le coucher du soleil, le lever de la lune, le coucher de la lune et la phase de la lune où je suis à l'écran. Tout fonctionne bien, sauf Ephem ne met évidemment pas à jour en temps réel.Ephem non mise à jour en temps réel
Ceci est la partie spécifique du code qui est exécutée chaque fois que la souris est déplacée.
self.maploc.lat, self.maploc.lon = str(py), str(px)
sr = str(self.maploc.next_rising(ephem.Sun()
ss = str(self.maploc.next_setting(ephem.Sun()))
snr = sr.split(' ')
sns = ss.split(' ')
self.maploc.lat, self.maploc.lon = str(py), str(px)
mr = str(self.maploc.next_rising(ephem.Moon()))
ms = str(self.maploc.next_setting(ephem.Moon()))
mn = ephem.Moon()
mn.compute(self.maploc)
mnr = mr.split(' ')
mns = ms.split(' ')
Je pense courir le mn.compute (self.maploc) ferait une mise à jour complète des coordonnées de la carte, mais il ne fonctionne pas. Accordé hier comme j'ai commencé à bricoler avec cette idée, j'ai remarqué qu'il ne semblait pas faire de mise à jour en direct avec les temps de lever du soleil non plus.
Comment obtenir une mise à jour en temps réel ou puis-je utiliser ephem?
Si je lance le programme, la phase de lune restera toujours la même jusqu'à ce que je ferme le programme et redémarre le programme.