MON HORLOGE
ETAPE 1 : création de la fenêtre, du canvas et du cadran
fromtkinter import*
frommath import*
fromtime import*
horloge=Tk()
horloge.title("Mon horloge")
can=Canvas(horloge,bg='light grey',height=250,width=240) can.pack()
can.create_oval(20,20,220,220,fill='pink',width=2) horloge.mainloop()
ETAPE 2 : Horloge numérique
fromtkinter import*
frommath import*
fromtime import*
fromdatetime import*
defheure():
label_heure.config(text=strftime('%H:%M:%S'))
label_heure.after(200,heure)#Rafrichissement du Label qui contient l'heure
defjour():
jour=date.today()
label_jour.config(text=str(jour))
defcadran():
can.create_oval(20,20,220,220,fill='pink',width=2)
horloge=Tk()
horloge.title("Mon horloge")
can=Canvas(horloge,bg='light grey',height=300,width=240) can.grid(row=0,column=0)
# aiguille des seconde
# horloge digitale
label_heure=Label(horloge,font=20) label_heure.grid(row=4,column=0) label_jour=Label(horloge,font=20) label_jour.grid(row=2,column=0) heure()
jour() cadran()
horloge.mainloop()
ETAPE 3 : aiguille des secondes
fromtkinter import*
frommath import*
fromtime import*
fromdatetime import*
defheure():# affichage de l'heure sur l'horloge digitale
label_heure.config(text=strftime('%H:%M:%S'))
label_heure.after(200,heure)#Rafrichissement du Label qui contient l'heure
defjour():# affichage de la date du jour
jour=date.today()
label_jour.config(text=str(jour))
defcadran():
can.create_oval(20,20,220,220,fill='pink',width=2)
defaiguille_seconde():# aiguille des secondes
secondes=int(strftime('%S'))
angle1=-(90-6*secondes)*pi/180
angle2=-(90-6*(secondes-1))*pi/180
xs1=120+80*cos(angle1)
ys1=120+80*sin(angle1)
xs2=120+80*cos(angle2)
ys2=120+80*sin(angle2)
can.create_line(120,120,xs2,ys2,width=1,fill='pink')# effacer l'aiguille précédente
can.create_line(120,120,xs1,ys1,width=1)
can.after(200,aiguille_seconde)
horloge=Tk()
horloge.title("Mon horloge")
can=Canvas(horloge,bg='light grey',height=300,width=240) can.grid(row=0,column=0)
# horloge digitale
label_heure=Label(horloge,font=20) label_heure.grid(row=4,column=0) label_jour=Label(horloge,font=20) label_jour.grid(row=2,column=0) heure()
jour() cadran()
aiguille_seconde() horloge.mainloop()
ETAPE 4 : les autres aiguilles
fromtkinter import*
frommath import*
fromtime import*
fromdatetime import*
defheure():# affichage de l'heure sur l'horloge digitale
label_heure.config(text=strftime('%H:%M:%S'))
label_heure.after(200,heure)#Rafrichissement du Label qui contient l'heure defjour():# affichage de la date du jour
jour=date.today()
label_jour.config(text=str(jour))
defcadran():
can.create_oval(20,20,220,220,fill='pink',width=2)
defaiguille():
heures=int(strftime('%H'))
minutes=int(strftime('%M'))
secondes=int(strftime('%S'))
angles1=-(90-6*secondes)*pi/180# angle aiguille seconde
angles2=-(90-6*(secondes-1))*pi/180# angle ancienne aiguille
xs1=120+80*cos(angles1)
ys1=120+80*sin(angles1)
xs2=120+80*cos(angles2)
ys2=120+80*sin(angles2)
anglem1=-(90-6*minutes-secondes/10)*pi/180#angle minutes
anglem2=-(90-6*(minutes)-(secondes-1)/10)*pi/180
xm1=120+60*cos(anglem1)
ym1=120+60*sin(anglem1)
xm2=120+60*cos(anglem2)
ym2=120+60*sin(anglem2)
angleh1=-(90-30*heures-minutes/2)*pi/180#angle heures
angleh2=-(90-30*heures-(minutes-1)/2)*pi/180
xh1=120+30*cos(angleh1)
yh1=120+30*sin(angleh1)
xh2=120+30*cos(angleh2)
yh2=120+30*sin(angleh2)
can.create_line(120,120,xm2,ym2,width=2,fill='pink')# effacer l'aiguille précédente
can.create_line(120,120,xm1,ym1,width=2,fill='blue')
can.create_line(120,120,xs2,ys2,width=1,fill='pink')# effacer l'aiguille précédente
can.create_line(120,120,xs1,ys1,width=1)
can.create_line(120,120,xh2,yh2,width=3,fill='pink')# effacer l'aiguille précédente
can.create_line(120,120,xh1,yh1,width=3,fill='green')
can.after(200,aiguille)
horloge=Tk()
horloge.title("Mon horloge")
can=Canvas(horloge,bg='light grey',height=300,width=240) can.grid(row=0,column=0)
# horloge digitale
label_heure=Label(horloge,font=20) label_heure.grid(row=4,column=0) label_jour=Label(horloge,font=20) label_jour.grid(row=2,column=0) heure()
jour() cadran() aiguille()
horloge.mainloop()
ETAPE 5 : les graduation de l'horloge et affichage des heure
fromtkinter import*
frommath import*
fromtime import*
fromdatetime import*
defheure():# affichage de l'heure sur l'horloge digitale
label_heure.config(text=strftime('%H:%M:%S'))
label_heure.after(200,heure)#Rafrichissement du Label qui contient l'heure
defjour():# affichage de la date du jour
jour=date.today()
label_jour.config(text=str(jour))
defcadran():
can.create_oval(20,20,220,220,fill='pink',width=2)
fori inrange(0,360,6):
a=i*pi/180
can.create_line(120+90*cos(a),120+90*sin(a),120+100*cos(a),120+100*sin(a))
fori inrange (300,660,30):
a=i*pi/180
can.create_line(120+90*cos(a),120+90*sin(a),120+100*cos(a),120+100*sin(a),width=3)
h=int(i/30-9)
can.create_text(120+110*cos(a),120+110*sin(a),text=str(h),font=30,fill='yellow')
defaiguille():
heures=int(strftime('%H'))
minutes=int(strftime('%M'))
secondes=int(strftime('%S'))
angles1=-(90-6*secondes)*pi/180# angle aiguille seconde
angles2=-(90-6*(secondes-1))*pi/180# angle ancienne aiguille
xs1=120+80*cos(angles1)
ys1=120+80*sin(angles1)
xs2=120+80*cos(angles2)
ys2=120+80*sin(angles2)
anglem1=-(90-6*minutes-secondes/10)*pi/180#angle minutes
anglem2=-(90-6*(minutes)-(secondes-1)/10)*pi/180
xm1=120+60*cos(anglem1)
ym1=120+60*sin(anglem1)
xm2=120+60*cos(anglem2)
ym2=120+60*sin(anglem2)
angleh1=-(90-30*heures-minutes/2)*pi/180#angle heures
angleh2=-(90-30*heures-(minutes-1)/2)*pi/180
xh1=120+30*cos(angleh1)
yh1=120+30*sin(angleh1)
xh2=120+30*cos(angleh2)
yh2=120+30*sin(angleh2)
can.create_line(120,120,xm2,ym2,width=2,fill='pink')# effacer l'aiguille précédente
can.create_line(120,120,xm1,ym1,width=2,fill='blue')
can.create_line(120,120,xs2,ys2,width=1,fill='pink')# effacer l'aiguille précédente
can.create_line(120,120,xs1,ys1,width=1)
can.create_line(120,120,xh2,yh2,width=3,fill='pink')# effacer l'aiguille précédente
can.create_line(120,120,xh1,yh1,width=3,fill='red')
can.after(200,aiguille)
horloge=Tk()
horloge.title("Mon horloge")
can=Canvas(horloge,bg='light grey',height=300,width=240) can.grid(row=0,column=0)
# horloge digitale
label_heure=Label(horloge,font=20) label_heure.grid(row=4,column=0) label_jour=Label(horloge,font=20) label_jour.grid(row=2,column=0) heure()
jour() cadran() aiguille()
horloge.mainloop()
ETAPE finale : la présentation
fromtkinter import*
frommath import*
fromtime import*
fromdatetime import*
defheure():# affichage de l'heure sur l'horloge digitale
label_heure.config(text=strftime('%H:%M:%S'))
label_heure.after(200,heure)#Rafrichissement du Label qui contient l'heure defjour():# affichage de la date du jour
jour=date.today()
label_jour.config(text=str(jour))
defjoursemaine():
jours =["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"]
joursemaine=jours[localtime()[6]]
label_joursemaine.config(text=str(joursemaine)) defcadran():
can.create_oval(20,20,220,220,fill='pink',width=2)
fori inrange(0,360,6):
a=i*pi/180
can.create_line(120+90*cos(a),120+90*sin(a),120+100*cos(a),120+100*sin(a))
fori inrange (300,660,30):
a=i*pi/180
can.create_line(120+90*cos(a),120+90*sin(a),120+100*cos(a),120+100*sin(a),width=3)
h=int(i/30-9)
can.create_text(120+110*cos(a),120+110*sin(a),text=str(h),font=30,fill='yellow')
defaiguille():
heures=int(strftime('%H'))
minutes=int(strftime('%M'))
secondes=int(strftime('%S'))
angles1=-(90-6*secondes)*pi/180# angle aiguille seconde
angles2=-(90-6*(secondes-1))*pi/180# angle ancienne aiguille
xs1=120+80*cos(angles1)
ys1=120+80*sin(angles1)
xs2=120+80*cos(angles2)
ys2=120+80*sin(angles2)
anglem1=-(90-6*minutes-secondes/10)*pi/180#angle minutes
anglem2=-(90-6*(minutes)-(secondes-1)/10)*pi/180
xm1=120+60*cos(anglem1)
ym1=120+60*sin(anglem1)
xm2=120+60*cos(anglem2)
ym2=120+60*sin(anglem2)
angleh1=-(90-30*heures-minutes/2)*pi/180#angle heures
angleh2=-(90-30*heures-(minutes-1)/2)*pi/180
xh1=120+30*cos(angleh1)
yh1=120+30*sin(angleh1)
xh2=120+30*cos(angleh2)
yh2=120+30*sin(angleh2)
can.create_line(120,120,xm2,ym2,width=2,fill='pink')# effacer l'aiguille précédente
can.create_line(120,120,xm1,ym1,width=2,fill='blue')
can.create_line(120,120,xs2,ys2,width=1,fill='pink')# effacer l'aiguille précédente
can.create_line(120,120,xs1,ys1,width=1)
can.create_line(120,120,xh2,yh2,width=3,fill='pink')# effacer l'aiguille précédente
can.create_line(120,120,xh1,yh1,width=3,fill='red')
can.after(200,aiguille) horloge=Tk()
horloge.title("Mon horloge")
can=Canvas(horloge,bg='light grey',height=250,width=240) can.grid(row=0,column=0)
# horloge digitale
label_jour=Label(horloge,font=20,background='yellow') label_jour.grid(row=3,column=0)
label_joursemaine=Label(horloge,font=30,fg='orange') label_joursemaine.grid(row=2,column=0)
label_heure=Label(horloge,font=30,fg='red2') label_heure.grid(row=4,column=0)
heure() jour() cadran() aiguille() joursemaine() horloge.mainloop()