Les exemples de Projet
Projet simple

webm to mp4 converter by EasyHtml5Video.com v4.0
Objectif du tutoriel

OBJECTIF

Construire

  • Afficher une fenêtre, avec un titre et une icône.
  • Déterminer la dimension de la fenêtre pour qu’elle puisse afficher des textes et des images.
  • Inclure dans la fenêtre un canevas (Canvas) pour afficher des images qui peuvent se déplacer à l’aide de la souris.
  • Utiliser les listes et les tableaux pour stocker des données.
Le code du progamme 1
CODE
#application01.py #Exemple de déplacement d'objet sur un parcours from random import * from tkinter import * from math import * #module graphique from tkinter import* #liste de d'objets f=["☀","★","◕","◔"] #fonctions def deplace( can , x , y , objeta, k,trajet,qs ): k=(k+1)%qs x,y=trajet[k][0]*20+10,trajet[k][1]*20+10 can.coords(objeta ,x , y) couleur=['red','green','blue','gold'] coul=couleur[k%4] can.itemconfigure(objeta,fill=coul) can.itemconfigure(objeta,angle=(k*20)%360) fenetre.after( 50, lambda :deplace( can,x,y,objeta,k,trajet,qs)) def tourne( can , x , y , objeta, k,qs ): k=(k+1) couleur=['red','green','blue','gold'] coul=couleur[k%4] can.itemconfigure(objeta,fill=coul) can.itemconfigure(objeta,angle=(k*20)%360) fenetre.after( 50, lambda :tourne( can,x,y,objeta,k,qs)) def nettoie_fenetre(fenetre,can,liste_widgets): can.delete(ALL) for w in liste_widgets:w.destroy() return fenetre,can def Tableau(ligne,colonne): #fabrication d'un tableau lignes colonnes tableau=[] for i in range(ligne): ligne=[] for j in range(colonne): ligne.append(["⛆","green","verdana 15 "]) tableau.append(ligne) return tableau def itinéraire(tableau,ligne,colonne): #on détermine l'itinéraire avec la liste #ligne par ligne n=colonne h=ligne xs=[0,4,4,n-3,n-3,n-15,n-15,n-18,n-18,12, 12,n-9,n-9,n-6, n-6,9,9,4,4,0,0] ys=[4,4,2,2,h-3,h-3,15, 15,h-3,h-3,7,7,h-10,h-10,4,4,h-3,h-3,7,7,7] trajet=[] inverse=[] for i in range(19): inverse=[] if i%2==0: de,fi,hs=xs[i],xs[i+1],ys[i] change=False if de>fi: dp=fi fi=de de=dp change=True for k in range(de,fi+1): if change==False:trajet.append([k,hs] ) if change==True:inverse.append([k,hs] ) tableau[hs][k][0]="⬛" tableau[hs][k][1]="white" tableau[hs][k][2]="verdana 15" if change==True: for g in range(len(inverse)): trajet.append(inverse[len(inverse)-1-g]) if i%2==1: de,fi,hs=ys[i],ys[i+1],xs[i] change=False if de>fi: dp=fi fi=de de=dp change=True for k in range(de,fi+1): if change==False:trajet.append([hs,k]) if change==True:inverse.append([hs,k] ) tableau[k][hs][0]="⬛" tableau[k][hs][1]="white" tableau[k][hs][2]="verdana 15" if change==True: for g in range(len(inverse)): trajet.append(inverse[len(inverse)-1-g]) return tableau ,trajet def affiche(tableau,ligne,colonne): ft="verdana 25 " ft1="verdana 30 " for i in range(ligne): for j in range(colonne): tx=tableau[i][j][0] fillo=tableau[i][j][1] fdf=tableau[i][j][2] can.create_text(j*20+10,i*20+10,text=tx,font=fdf,fill=fillo) colonne,ligne=60,40 larg=20 haut=20 route=[] k=0 fenetre=Tk() largeur,hauteur=int(colonne*larg),int(ligne*larg) fenetre.geometry(str(largeur)+"x"+str(hauteur)) fenetre.configure(bg='light blue') compteur=0 can=Canvas(fenetre,width=largeur,height=hauteur,bg='red') can.grid(row=0,column=0,rowspan=ligne,columnspan=colonne) liste_widgets=[] tableau=Tableau(ligne,colonne) tableau,trajet=itinéraire(tableau,ligne,colonne) affiche(tableau,ligne,colonne) qs=len(trajet) x,y=trajet[k][0]*20,trajet[k][1]*20 objeta = can.create_text( x,y,text =f[1],font='verdana 20',fill='green') objet = can.create_text( 600,400,text =f[2],font='verdana 220',fill='green') objet2 = can.create_text( 40,40,text =f[0],font='verdana 40',fill='green') objet1 = can.create_text( 600,200,text =f[3],font='verdana 40',fill='green') objet3 = can.create_text(1000,700,text =f[1],font='verdana 60',fill='green') deplace( can , x , y , objeta, k,trajet,qs ) tourne( can , 600 , 200 , objet, k,qs ) tourne( can , 40 , 40 , objet1, k,qs ) tourne( can , 600 , 200 , objet2, k,qs ) tourne( can , 1000 , 700 , objet3, k,qs ) fenetre.mainloop()
Projet avec images
html5 video streaming by EasyHtml5Video.com v4.0
Objectif du tutoriel

OBJECTIF

Construire

  • Afficher une fenêtre, avec un titre et une icône.
  • Déterminer la dimension de la fenêtre pour qu’elle puisse afficher des textes et des images.
  • Inclure dans la fenêtre un canevas (Canvas) pour afficher des images qui peuvent se déplacer en fond d'écran.
  • Utiliser les listes et les tableaux pour stocker des données.
Le code du programme 2

CODE
#application02.py f=["☀","★",chr(11119),chr(11029),chr(10040),chr(10060),"⛵"] #module graphique from tkinter import* #fonction def deplace1(can,x,y,objeta,k1,k,la,ha,un,deux ,kp,kx): k1=k1+1 if y>ha-90: kp=-1 y=y+deux*kp if y<50: kp=+1 y=y+deux*kp y=y+deux*kp k=k+1 if x>la-50: kx=-1 if x<50: kx=+1 x=x+un*kx can.coords(objeta ,x , y) couleur=['red','green','blue','gold'] coul=couleur[k%4] can.itemconfigure(objeta,fill=coul) can.itemconfigure(objeta,angle=(500-k*10)%500) k1=k fenetre.after(50,lambda:deplace1(can,x,y,objeta,k1,k,la,ha,un,deux ,kp,kx)) def bateau(can,x,y,objeta,k): couleur=['red','green','blue','gold'] coul=couleur[k%4] can.itemconfigure(objeta,fill=coul) k=k+1 fenetre.after(50,lambda:bateau(can,x,y,objeta,k)) #fonctions def deplace( can , x , y , objeta, k10,trajet,qs,imge ): k10=(k10+1)%qs x,y=trajet[k10][0]*20+10,trajet[k10][1]*20+10 can.coords(objeta ,x , y) couleur=['red','green','blue','gold'] coul=couleur[k10%4] kp,kp1,kp2,kp3=imge[1],imge[3],imge[5],imge[7] p ,p1,p2,p3=imge[0],imge[2],imge[4],imge[6] kp,kp1,kp2,kp3=kp+10,kp1+10,kp2+10,kp3+10 if kp==0:kp3=-la if kp3==0:kp2=-la if kp2==0:kp1=-la if kp1==0:kp=-la can.coords(p,kp,ha/2) can.coords(p1,kp1,ha/2) can.coords(p2,kp2,ha/2) can.coords(p3,kp3,ha/2) imge[1],imge[3],imge[5],imge[7]=kp,kp1,kp2,kp3 imge[0],imge[2],imge[4],imge[6]=p ,p1,p2,p3 can.itemconfigure(objeta,fill=coul) can.itemconfigure(objeta,angle=(k10*20)%360) fenetre.after( 50, lambda :deplace( can,x,y,objeta,k10,trajet,qs,imge)) def tourne( can , x , y , objeta, k,qs ): k=(k+1) couleur=['red','green','blue','gold'] coul=couleur[k%4] can.itemconfigure(objeta,fill=coul) can.itemconfigure(objeta,angle=(k*20)%360) fenetre.after( 50, lambda :tourne( can,x,y,objeta,k,qs)) def nettoie_fenetre(fenetre,can,liste_widgets): can.delete(ALL) for w in liste_widgets:w.destroy() return fenetre,can def Tableau(ligne,colonne): #fabrication d'un tableau lignes colonnes tableau=[] for i in range(ligne): ligne=[] for j in range(colonne): #ligne.append(["⛆","green","verdana 15 "]) ligne.append(["","",""]) tableau.append(ligne) return tableau def itinéraire(tableau,ligne,colonne): #on détermine l'itinéraire avec la liste #ligne par ligne n=colonne h=ligne xs=[0,4,4,n-3,n-3,n-15,n-15,n-18,n-18,12, 12,n-9,n-9,n-6, n-6,9,9,4,4,0,0] ys=[4,4,2,2,h-3,h-3,15, 15,h-3,h-3,7,7,h-10,h-10,4,4,h-3,h-3,7,7,7] trajet=[] inverse=[] for i in range(19): inverse=[] if i%2==0: de,fi,hs=xs[i],xs[i+1],ys[i] change=False if de>fi: dp=fi fi=de de=dp change=True for k in range(de,fi+1): if change==False:trajet.append([k,hs] ) if change==True:inverse.append([k,hs] ) tableau[hs][k][0]="⬛" tableau[hs][k][1]="white" tableau[hs][k][2]="verdana 15" if change==True: for g in range(len(inverse)): trajet.append(inverse[len(inverse)-1-g]) if i%2==1: de,fi,hs=ys[i],ys[i+1],xs[i] change=False if de>fi: dp=fi fi=de de=dp change=True for k in range(de,fi+1): if change==False:trajet.append([hs,k]) if change==True:inverse.append([hs,k] ) tableau[k][hs][0]="⬛" tableau[k][hs][1]="white" tableau[k][hs][2]="verdana 15" if change==True: for g in range(len(inverse)): trajet.append(inverse[len(inverse)-1-g]) return tableau ,trajet def affiche(tableau,ligne,colonne): ft="verdana 25 " ft1="verdana 30 " for i in range(ligne): for j in range(colonne): tx=tableau[i][j][0] fillo=tableau[i][j][1] fdf=tableau[i][j][2] # if tx!="": # can.create_text(j*20+10,i*20+10,text=tx,font=fdf,fill=fillo) fenetre =Tk() photo=PhotoImage(file='0101.png') largeur=photo.width() hauteur=photo.height() photo1=PhotoImage(file='0101a.png') photo2=PhotoImage(file='0101b.png') photo3=PhotoImage(file='0101c.png') fenetre.geometry(str(largeur)+"x"+str(hauteur)) la,ha=largeur,hauteur colonne,ligne=int(la/20),int(ha/20) larg=20 haut=20 route=[] k10=0 fenetre.configure(bg='light blue') compteur=0 can=Canvas(fenetre,width=largeur,height=hauteur) can.grid(row=0,column=0,rowspan=ligne,columnspan=colonne) liste_widgets=[] p=can.create_image(-la,ha/2,image=photo) p1=can.create_image(0,ha/2,image=photo1) p2=can.create_image(la,ha/2,image=photo2) p3=can.create_image(la+la,ha/2,image=photo3) kp,kp1,kp2,kp3=-la,0,la,la+la imge=[p,kp,p1,kp1,p2,kp2,p3,kp3] tableau=Tableau(ligne,colonne) tableau,trajet=itinéraire(tableau,ligne,colonne) affiche(tableau,ligne,colonne) qs=len(trajet) x,y=trajet[k10][0]*20,trajet[k10][1]*20 objeta = can.create_text( x,y,text =f[1],font='verdana 60',fill='green') #objet = can.create_text( 600,400,text =f[2],font='verdana 40',fill='green') #objet2 = can.create_text( 40,40,text =f[0],font='verdana 40',fill='green') #objet1 = can.create_text( 600,200,text =f[3],font='verdana 40',fill='green') #objet3 = can.create_text(1000,700,text =f[1],font='verdana 60',fill='green') deplace( can , x , y , objeta, k10,trajet,qs ,imge) k23=0 #tourne( can , 600 , 200 , objet, k10,qs ) #tourne( can , 40 , 40 , objet1, k10,qs ) #tourne( can , 600 , 200 , objet2, k10,qs ) #tourne( can , 1000 , 700 , objet3, k10,qs )"⛵" objet5 = can.create_text( 600,480,text ="⛵",font='verdana 40',fill='green') bateau(can,x,y,objet5,k23) k0,k01,k1,k11,k2,k22=60,500,100,550,200,120 ka0,ka01,ka1,ka11,ka2,ka22=600,54,100,400,100,100 un,deux,un1,deux1,un2,deux2=4,10,10,3,20,6 kp,kx=1,1 #objeta = can.create_text(k0,k01,text =f[3],font='verdana 50',fill='red') #objeta1 = can.create_text( ka1,ka11,text =f[0],font='verdana 50',fill='blue') #objeta2 = can.create_text( ka2,ka22,text =f[1],font='verdana 50',fill='green') #objet = can.create_text( ka0,ka01,text =f[2],font='verdana 50',fill='red') #objet1 = can.create_text( k1,k11,text =f[4],font='verdana 50',fill='blue') #objet2 = can.create_text( ka2,ka22,text =f[5],font='verdana 50',fill='green') #deplace1(can,k0,k01,objeta,k0,k01,la,ha,un,deux ,2,kx) #deplace1(can,k0,k22,objet,k0,k22,la,ha,un,deux ,3,kx) #deplace1(can,k1,k11,objet1,k1,k11,la,ha,un1,deux1 ,kp,kx) #deplace1(can,ka0,ka01,objeta2,ka0,ka01,la,ha,un2,deux2 ,kp,kx) #deplace1(can,ka1,ka11,objeta1,ka1,ka11,la,ha,un1,deux1 ,kp,kx) #deplace1(can,ka2,ka22,objet2,ka2,ka22,la,ha,un2,deux2 ,kp,kx) fenetre.mainloop()