You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.3 KiB
65 lines
2.3 KiB
# https://82.96.134.49/[...]
|
|
import tkinter as tk
|
|
|
|
def plusGrand(lst):
|
|
"""Fonction permettant de trouver le plus grand nombre d'une liste de taille
|
|
maximum 10."""
|
|
maxint = int(lst[0])
|
|
if len(lst) >= 10:
|
|
for i in range(1,10):
|
|
if maxint<int(lst[i]):
|
|
maxint = int(lst[i])
|
|
else:
|
|
for i in range(1,len(lst)):
|
|
if maxint<int(lst[i]):
|
|
maxint = int(lst[i])
|
|
return maxint
|
|
|
|
def validerNombres():
|
|
"""Fonction permettant de créer les rectangles proportionnels aux nombres
|
|
donnés par l'utilisateur."""
|
|
caneva.delete("all")
|
|
erreur.configure(text="")
|
|
nombres_separe = nombres.get().split(" ")
|
|
maxNombres = plusGrand(nombres_separe)
|
|
for i in range(len(nombres_separe)):
|
|
if i>=10:
|
|
erreur.configure(text="Vous avez inséré plus que 10 nombres,"\
|
|
" seul les 10 premiers sont pris en compte")
|
|
return 0
|
|
if 0<=int(nombres_separe[i])/maxNombres<0.25:
|
|
couleur = '#7ef968'
|
|
elif 0.25<=int(nombres_separe[i])/maxNombres<0.5:
|
|
couleur = '#e6f968'
|
|
elif 0.5<=int(nombres_separe[i])/maxNombres<0.75:
|
|
couleur = '#fc9d3f'
|
|
else:
|
|
couleur = '#fc5555'
|
|
caneva.create_rectangle(40*i+30,300-300*int(nombres_separe[i])/maxNombres
|
|
,40*i+50,300,fill=couleur)
|
|
|
|
|
|
fenetre = tk.Tk()
|
|
fenetre.geometry('460x440')
|
|
fenetre['bg'] = "#fffcfc"
|
|
fenetre.title('Graphique proportionnel de 10 nombes - Sujet n°6')
|
|
|
|
caneva = tk.Canvas(fenetre,height = 300,width=440,bg="#fffcfc")
|
|
caneva.grid(column = 1, columnspan = 4,padx=10,pady=10)
|
|
|
|
label = tk.Label(fenetre, text = 'Entrez au maximum 10 nombres entiers strictement ' \
|
|
'positifs' ,bg = "#fffcfc",font='Noto 10')
|
|
label.grid(column = 1, columnspan = 4)
|
|
|
|
nombres = tk.StringVar()
|
|
entree = tk.Entry(fenetre, textvariable= nombres , width =50)
|
|
entree.grid(column = 1, columnspan =4)
|
|
|
|
boutonValider =tk.Button(fenetre,text='Valider les nombres',
|
|
command=validerNombres,bg="#fffcfc",font='Noto 10')
|
|
boutonValider.grid(column = 2, columnspan = 2)
|
|
messerreur = tk.StringVar()
|
|
erreur = tk.Label(fenetre,fg='red',bg="#fffcfc",font='Noto 7 bold')
|
|
erreur.grid(column=1,columnspan=4,row=5)
|
|
|
|
fenetre.mainloop()
|