Les exemples de Projet
- Exemple de Projet n° 1
- Vidéo
- Objectif du tutoriel
- Le code du progamme principal
- Exemple de Projet n° 2
- Vidéo avec images
- Objectif du tutoriel images
- Le code du progamme principal
Exemple de Projet n° 1
Vidéo
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 programme principal:
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()
|
Exemple de Projet n° 2
Vidéo
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 principal:
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()
|