Python >> Tutoriel Python >  >> Python GUI >> Tkinter GUI

Calculateur de notes moyennes en Python Tkinter

Salut les codeurs ! Aujourd'hui, dans ce didacticiel, nous comprendrons comment créer un calculateur de notes moyennes GUI à l'aide de Tkinter. Vous devez entrer votre sujet et les notes respectives obtenues sur 100, puis le bouton générer calculera votre pourcentage.

Chaque fois que vous obtenez un résultat d'examen, la première chose que vous voulez savoir est le pourcentage et la note que vous avez obtenus et cette application vous aide à le découvrir.

Lire aussi :Tutoriel Python Tkinter – Partie 1

Implémentation d'un calculateur de notes moyennes dans Python Tkinter

Maintenant que nous avons compris ce qu'est le calculateur de notes moyennes et comment vous aidera-t-il dans la vie quotidienne ?. Maintenant que vous connaissez l'application, passons à la création de l'application.

Création et conception de la fenêtre d'application

Pour commencer à travailler sur l'application, nous devons d'abord importer tkinter module et affectons notre fenêtre comme variable app . Nous allons également créer des variables pour personnaliser notre fenêtre d'application dans la section ultérieure.

from tkinter import *

app = Tk()

Name_of_application = "Average Marks Calculator"
width_height = "600x450"
back_color = "red"

Maintenant que nous avons la fenêtre de l'application, nous allons commencer à personnaliser la fenêtre. Nous allons changer le titre de la fenêtre, en utilisant le title méthode. Nous pouvons également déterminer la taille de la fenêtre de l'application en utilisant le geometry méthode. On peut aussi empêcher le redimensionnement de la fenêtre en utilisant le resizable méthode. Nous allons également changer la couleur de fond de la fenêtre dans Tkinter en utilisant configure(bg=”) méthode.

app.title(Name_of_application)
app.geometry(width_height)
app.resizable(False, False)
app.configure(bg=back_color)

Nous allons ajouter les widgets suivants à notre application :

  1. Libellé
  2. Entrée
  3. Bouton
# Labels  
Title = Label(text="Welcome to Average Marks Calculator!",bg="black",
              fg="white",font=("Helvetica", 14))
Title.place(x=30, y=3)

Description_Text = """You need to input your subject and respective marks obtained out of 
100 and then the generate button would calculate your percentage and grade."""

Description = Label(text=Description_Text,bg="#FFC300",
                    fg="black",font=("Helvetica", 10)).place(x=30, y=40)
info =Label(text="Subject Name",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=90)
entry=Label(text="Marks Obtained",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=180, y=90)
subject=Label(text="Physics",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=130)
entry1 = Entry(app)
entry1.place(x = 180, y = 130)
subject=Label(text="Mathematics",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=150)
entry2 = Entry(app)
entry2.place(x = 180, y = 150)
subject=Label(text="Chemistry",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=170)
entry3 = Entry(app)
entry3.place(x = 180, y = 170)
subject=Label(text="Biology",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=190)
entry4 = Entry(app)
entry4.place(x = 180, y = 190)
subject=Label(text="English",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=210)
entry5 = Entry(app)
entry5.place(x = 180, y = 210)
subject=Label(text="3rd language",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=230)
entry6 = Entry(app)
entry6.place(x = 180, y = 230)
subject=Label(text="Social Science",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=250)
entry7 = Entry(app)
entry7.place(x = 180, y = 250)
b = Button(app, text = "Submit")
b.place(x=120,y=290)
Percentage=Label(text="PERCENTAGE",bg="black",
                fg="white",font=("Helvetica",10)).place(x=30,y=330)
entry8 = Entry(app,textvariable=m8,state='disabled')
entry8.place(x = 150, y = 330)
app.mainloop()

Ajout de variables de texte pour les zones de saisie

Nous ajouterons 7 variables pour les sept zones de saisie de l'application en utilisant le code ci-dessous. Nous ajouterons la variable au text variable attribut des zones de saisie respectives.

m1=StringVar()
m2=StringVar()
m3=StringVar()
m4=StringVar()
m5=StringVar()
m6=StringVar()
m7=StringVar()
m8=StringVar()
m1=StringVar()
m2=StringVar()
m3=StringVar()
m4=StringVar()
m5=StringVar()
m6=StringVar()
m7=StringVar()
m8=StringVar()
info =Label(text="Subject Name",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=90)
entry=Label(text="Marks Obtained",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=180, y=90)
subject=Label(text="Physics",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=130)
entry1 = Entry(app,textvariable=m1)
entry1.place(x = 180, y = 130)
subject=Label(text="Mathematics",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=150)
entry2 = Entry(app,textvariable=m2)
entry2.place(x = 180, y = 150)
subject=Label(text="Chemistry",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=170)
entry3 = Entry(app,textvariable=m3)
entry3.place(x = 180, y = 170)
subject=Label(text="Biology",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=190)
entry4 = Entry(app,textvariable=m4)
entry4.place(x = 180, y = 190)
subject=Label(text="English",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=210)
entry5 = Entry(app,textvariable=m5)
entry5.place(x = 180, y = 210)
subject=Label(text="3rd language",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=230)
entry6 = Entry(app,textvariable=m6)
entry6.place(x = 180, y = 230)
subject=Label(text="Social Science",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=250)
entry7 = Entry(app,textvariable=m7)
entry7.place(x = 180, y = 250)
b = Button(app, text = "Submit")
b.place(x=120,y=290)
Percentage=Label(text="PERCENTAGE",bg="black",
                fg="white",font=("Helvetica",10)).place(x=30,y=330)
entry8 = Entry(app,textvariable=m8,state='disabled')
entry8.place(x = 150, y = 330)
app.mainloop()

Ajouter une fonctionnalité de bouton

Nous avons besoin d'une fonction pour calculer le pourcentage de notes saisies par l'élève. Le code ci-dessous prend les entrées de toutes les zones de saisie et calcule le pourcentage. La sortie est placée dans la dernière zone de saisie qui est ensuite désactivée.

def marks():
    a=int(entry1.get())
    b=int(entry2.get())
    c=int(entry3.get())
    d=int(entry4.get())
    e=int(entry5.get())
    f=int(entry6.get())
    g=int(entry7.get())
    perc=((a+b+c+d+e+f+g)/7)
    entry8.config(state='normal')
    entry8.delete(0,END)
    entry8.insert(0,str(perc))
    entry8.config(state='disabled')

Le code Tkinter complet pour la mise en œuvre du calculateur de notes moyennes

from tkinter import *

app = Tk()

Name_of_application = "Average Marks Calculator"
width_height = "600x450"
back_color = "red"

def marks():
    a=int(entry1.get())
    b=int(entry2.get())
    c=int(entry3.get())
    d=int(entry4.get())
    e=int(entry5.get())
    f=int(entry6.get())
    g=int(entry7.get())
    perc=((a+b+c+d+e+f+g)/7)
    entry8.config(state='normal')
    entry8.delete(0,END)
    entry8.insert(0,str(perc))
    entry8.config(state='disabled')

app.title(Name_of_application)
app.geometry(width_height)
app.resizable(False, False)
app.configure(bg=back_color)

# Labels  
Title = Label(text="Welcome to Average Marks Calculator!",bg="black",
              fg="white",font=("Helvetica", 14))
Title.place(x=30, y=3)

Description_Text = """You need to input your subject and respective marks obtained out of 
100 and then the generate button would calculate your percentage and grade."""

Description = Label(text=Description_Text,bg="#FFC300",
                    fg="black",font=("Helvetica", 10)).place(x=30, y=40)


m1=StringVar()
m2=StringVar()
m3=StringVar()
m4=StringVar()
m5=StringVar()
m6=StringVar()
m7=StringVar()
m8=StringVar()
info =Label(text="Subject Name",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=90)
entry=Label(text="Marks Obtained",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=180, y=90)
subject=Label(text="Physics",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=130)
entry1 = Entry(app,textvariable=m1)
entry1.place(x = 180, y = 130)
subject=Label(text="Mathematics",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=150)
entry2 = Entry(app,textvariable=m2)
entry2.place(x = 180, y = 150)
subject=Label(text="Chemistry",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=170)
entry3 = Entry(app,textvariable=m3)
entry3.place(x = 180, y = 170)
subject=Label(text="Biology",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=190)
entry4 = Entry(app,textvariable=m4)
entry4.place(x = 180, y = 190)
subject=Label(text="English",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=210)
entry5 = Entry(app,textvariable=m5)
entry5.place(x = 180, y = 210)
subject=Label(text="3rd language",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=230)
entry6 = Entry(app,textvariable=m6)
entry6.place(x = 180, y = 230)
subject=Label(text="Social Science",bg="red",
              fg="white",font=("Helvetica", 10)).place(x=10, y=250)
entry7 = Entry(app,textvariable=m7)
entry7.place(x = 180, y = 250)
b = Button(app, text = "Submit",command=marks)
b.place(x=120,y=290)
Percentage=Label(text="PERCENTAGE",bg="black",
                fg="white",font=("Helvetica",10)).place(x=30,y=330)
entry8 = Entry(app,textvariable=m8,state='disabled')
entry8.place(x = 150, y = 330)
app.mainloop()

Un exemple de sortie

Conclusion

Toutes nos félicitations! Vous pouvez maintenant développer votre propre calculateur de notes moyennes que vous pourrez utiliser au quotidien pour connaître votre pourcentage et maintenir vos performances à la hauteur !

Merci d'avoir lu !

Lire aussi :Comment créer un calculateur d'âge graphique dans Python Tkinter