Tkintercode

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

# Variables globales

nbr_note = 1
notes = []
coeffs = []
convert = []
depart = True
textes = []
alertnbr=0
# Interface
fenetre = tkinter.Tk()
fenetre.geometry("500x300")
fenetre.title("Calculateur de moyennes")
fenetre.config(background="lightcyan")
alert = tkinter.Label(fenetre, text = "")
# Fonctions
def rajoute_note():
global nbr_note
nbr_note += 1
note_entry = ttk.Entry(fenetre, width=9)
note_entry.grid(row=nbr_note, column=alertnbr+1)
notes.append(note_entry)
coeff_entry = ttk.Entry(fenetre, width=9)
coeff_entry.grid(row=nbr_note, column=alertnbr+2)
coeffs.append(coeff_entry)
convert_entry = ttk.Entry(fenetre, width=9)
convert_entry.grid(row=nbr_note, column=alertnbr+3)
convert.append(convert_entry)
def calculer_moyenne():
total = 0
totalcoeff = 0
global textes
if textes == []:
alertnbr=1
alert.grid(row=0, column=0)
alert.config(fg = "red", bg="yellow", text ="veuillez convertir les notes
sur 20")
for entry in coeffs:
coeff = float(entry.get())
totalcoeff += coeff
for i, loop in enumerate(textes):
note = float(loop)
coeff = float(coeffs[i].get())
total += note * coeff
if totalcoeff != 0:
moyenne = total / totalcoeff
moyenne_label.config(text=f"Moyenne: {moyenne:.2f}")
moyenne_label.grid(row=nbr_note + 1, column=alertnbr+1)
else:
moyenne_label.config(text="Impossible de calculer la moyenne: division par
z�ro.")
moyenne_label.grid(row=nbr_note + 1, column=alertnbr+1)
def calculer_convert():
global nbr_note
global notes
global convert
global textes
intermediaire1 = [] #convert
intermediaire2 = [] #notes
intermediaire3 = [] #notes*20
final = []
convert0 = 0
convert1 = 0
convert2 = 0
for i in convert:
convert0 = float(i.get())
intermediaire1.append(convert0)
for i in notes:
convert1 = float(i.get())
intermediaire2.append(convert1)
for i in intermediaire2:
intermediaire3.append(i*20)
for i, loop in enumerate(intermediaire3):
final.append(loop/intermediaire1[i])
for i, loop in enumerate(final):
textes.append(loop)
convert0_label = ttk.Label(fenetre, text = loop)
convert0_label.grid(row=i+2, column=4)
if textes != []:
alert.grid(column=20, row=20)
# Menu
menu = tkinter.Menu(fenetre)
menu.add_command(label="Ajouter une note", command=rajoute_note)
menu.add_command(label="Calculer la moyenne", command=calculer_moyenne)
menu.add_command(label="convertir sur 20", command=calculer_convert)
menu.add_command(label="quitter l'application", command=fenetre.destroy)
fenetre.config(menu=menu)
# Labels
moyenne_label = ttk.Label(fenetre, text="")
moyenne_label.grid(row=nbr_note + 1, column=0)
text1 = ttk.Label(fenetre, text = "notes")
text1.grid(row=nbr_note, column = alertnbr+1)
text2 = ttk.Label(fenetre, text = "coefficients")
text2.grid(row=nbr_note, column = alertnbr+2)
text3 = ttk.Label(fenetre, text = "/?")
text3.grid(row=nbr_note, column = alertnbr+3)
text4 = ttk.Label(fenetre, text = "/20")
text4.grid(row=nbr_note, column = alertnbr+4)
# Mainloop
if depart == True:
rajoute_note()
depart = False
fenetre.mainloop()

You might also like