Sujet n6 du mini projet sur tkinter
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.

76 lines
2.6 KiB

# https://82.96.134.49/[...]
import tkinter as tk
def graduations(plusGrand):
"""crée des graduations sur le coté du caneva"""
graduations = [0,plusGrand*0.25,plusGrand*0.5,plusGrand*0.75,plusGrand]
caneva.create_text(5,7,text=graduations[4])
caneva.create_text(155,7,text='AA')
def separerListe(nombres):
"""Fonction permettant de séparer une chaine de caractere et de convertir ses elements en
nombres entiers et utilise la fonction plusGrand pour trouver le plus grand nombre
et renvoie 1 si la liste fait plus de 10 nombres."""
lstSepare = nombres.split(" ")
lstInt = []
for i in range(len(lstSepare)):
nombreTempo = lstSepare[i]
lstInt += [int(nombreTempo)]
if i+1>10:
return lstInt , plusGrand(lstInt) , 10 , 1
return lstInt , len(lstInt) , 0
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, longueurListe, plusDe10= separerListe(nombres.get())
maxNombres = max(nombres_separe)
if plusDe10==1:
erreur.configure(text="Vous avez inséré plus que 10 nombres,"\
" seul 10 sont affichés")
for i in range(longueurListe):
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)
graduations(maxNombres)
fenetre = tk.Tk()
fenetre.geometry('500x440')
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=30,pady=10,row = 0,rowspan = 4)
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()