Per eseguire il programma, potete usare IDLE o un editor più complesso, a vostra discrezione. Fate tranquillamente copia e incolla, potete facilmente eliminare i numeri di linea dalla copia iniziando a selezionare col mouse dal primo carattere effettivo del codice.
Nel prossimo post vi illustrero' pezzo per pezzo la logica di funzionamento di quello che ho scritto. Non ho inserito volutamente commenti nel testo, preferisco descriverlo in modo più verboso nel blog
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | #/usr/bin/env python # -*- coding: utf-8 -*- # piccolo programma di esempio d'uso della libreria Tkinter # di Python insieme alla libreria py-swisseph per il calcolo astronomico # di precisione import swisseph import Tkinter class Applicazione: def __init__(self, myProva): self.myProva=myProva self.myProva.title('Piccola prova di Tkinter nel calcolo astronomico') self.frame = Tkinter.Frame(myProva) self.frame.grid(row=0, column=0) self.titolo = Tkinter.Label(self.frame, text = "Titolo", bg = 'green', fg = 'black') self.titolo.grid(row=0, column=0, columnspan=6, sticky = 'we') self.lb_anno = Tkinter.Label(self.frame, text='Anno') self.lb_anno.grid(row=1, column=0) self.lb_mese = Tkinter.Label(self.frame, text='Mese') self.lb_mese.grid(row=1, column=1) self.lb_giorno = Tkinter.Label(self.frame, text = 'Giorno') self.lb_giorno.grid(row=1, column=2 ) self.lb_ora = Tkinter.Label(self.frame, text='Ora') self.lb_ora.grid(row=1, column =3) self.lb_minuto = Tkinter.Label(self.frame, text='Minuto') self.lb_minuto.grid(row=1, column=4) self.en_anno = Tkinter.Entry(self.frame, width='14', justify='center') self.en_anno.grid(row=2, column=0) self.en_mese = Tkinter.Entry(self.frame, width='14', justify='center') self.en_mese.grid(row=2, column=1) self.en_giorno = Tkinter.Entry(self.frame, width='14', justify='center') self.en_giorno.grid(row=2, column=2) self.en_ora = Tkinter.Entry(self.frame, width='14', justify='center') self.en_ora.grid(row=2, column=3) self.en_minuto = Tkinter.Entry(self.frame, width='14', justify='center') self.en_minuto.grid(row=2, column=4 ) self.labelRes1=[] labelRes2=[] for i in range(4,16): for j in range (0,5): labelRes2.append(Tkinter.Label(self.frame, relief='sunken', text='--------', anchor='e', width=15) ) labelRes2[-1].grid(row=i,column=j) self.labelRes1.append(labelRes2) labelRes2=[] self.bt_calcola = Tkinter.Button(self.frame, command=self.calcola, text='Calcola', bg='red', fg='blue') self.bt_calcola.grid(row=1, column=5, rowspan=14) self.lista_pianeti=['Sole', 'Luna', 'Mercurio', 'Venere', 'Marte', 'Giove', 'Saturno', 'Urano', 'Nettuno', 'Plutone', 'Nodo Lunare medio', 'Nodo Lunare vero'] self.lista_segni=['Ariete','Toro','Gemelli','Cancro','Leone', 'Vergine','Bilancia','Scorpione','Sagittario', 'Capricorno', 'Acquario', 'Pesci'] def calcola(self): giorno_giuliano=swisseph._julday(int(self.en_anno.get()), int(self.en_mese.get()), int(self.en_giorno.get()), int(self.en_ora.get()), int(self.en_minuto.get()) ) long_planet = [swisseph.calc(giorno_giuliano, x) for x in xrange(0,12)] for i in range(0,12): long_ecl = swisseph._degsplit(long_planet[i][0]) self.labelRes1[i][0].configure(text=self.lista_pianeti[i]) self.labelRes1[i][1].configure(text=str(long_ecl[0])+" °") self.labelRes1[i][2].configure(text=self.lista_segni[long_ecl[1]]) self.labelRes1[i][3].configure(text=str(long_ecl[2])+" '") self.labelRes1[i][4].configure(text=str(long_ecl[3])+" \"") root = Tkinter.Tk() app = Applicazione(root) root.mainloop() |
No comments:
Post a Comment