-
Notifications
You must be signed in to change notification settings - Fork 0
/
TP8 - GUI - Additionneur.py
77 lines (62 loc) · 2.9 KB
/
TP8 - GUI - Additionneur.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
from tkinter import *
EXPRESSION = ""
#Création de l'interface graphique
gui = Tk()
# Couleur de fond
gui.configure(background="#101419")
# Titre de l'application
gui.title("Calculatrice")
# Tailler de la fenetre
gui.geometry("870x80")
#Création de la variable qui permet d'afficher(doit être crée après la création de du gui)
equation = StringVar()
#Création des cadre pour écrire
ValeurA = Entry(gui,width=40)
ValeurB = Entry(gui,width=40)
def calculer(signe):
"""
Effectue un calcul en fonction du signe spécifié et met à jour la variable de contrôle equation.
Args:
signe (str): Le signe de l'opération à effectuer ("+", "-", "*", "/").
PRE:
- Les valeurs dans les champs de texte (ValeurA et ValeurB) doivent être convertibles en entiers.
- Le paramètre signe doit être l'un des signes valides ("+", "-", "*", "/").
POST:
- Si la conversion et le calcul réussissent, le résultat est affiché dans la variable de contrôle (equation).
- Si une erreur de valeur (ValueError) se produit pendant la conversion, affiche "erreur" dans la variable de contrôle.
- Si le signe spécifié n'est pas valide, affiche "erreur" dans la variable de contrôle.
"""
try:
global EXPRESSION
if signe == "+":
EXPRESSION = int(ValeurA.get()) + int(ValeurB.get()) # Le .get() permet de recupérer les données misent dans champs text
elif signe == "/":
EXPRESSION = int(ValeurA.get()) / int(ValeurB.get())
elif signe == "-":
EXPRESSION = int(ValeurA.get()) - int(ValeurB.get())
elif signe == "*":
EXPRESSION = int(ValeurA.get()) * int(ValeurB.get())
else:
equation.set("erreur")
total = str(EXPRESSION)
equation.set(total)
except ValueError:
equation.set("erreur")
#Création du bouton central - avec la fonction calculer qui y est appelé à chaque clique
BoutonPlus = Button(gui,text="+", width=40, command=lambda bouton="+": calculer(bouton))
BoutonDiviser = Button(gui,text="/", width=40, command=lambda bouton="/": calculer(bouton))
BoutonSoustraire = Button(gui,text="-", width=40, command=lambda bouton="-": calculer(bouton))
BoutonMultiplier = Button(gui,text="*", width=40, command=lambda bouton="*": calculer(bouton))
#Création de la zone d'affichage juste en-dessous du bouton
resultat = Label(gui, bg="#101419", fg="#FFF", textvariable=equation, height=2)
#Mise en place des élémentes par colones et rangée
ValeurA.grid(column=0, row=0)
ValeurB.grid(column=2, row=0)
BoutonPlus.grid(column=1, row=0)
BoutonDiviser.grid(column=0,row=1)
BoutonSoustraire.grid(column=1,row=1)
BoutonMultiplier.grid(column=2,row=1)
resultat.grid(column=1,row=2)
if __name__ == "__main__":
#Commande permettant de garder le gui en permanence ouvert
gui.mainloop()