import tkinter as tk fen = tk.Tk() fen.title("Calculatrice") #taille de la fenetre fen.geometry("550x450") canvas=tk.Canvas(fen, width=500, height=300, bg="pink") label = tk.Label(canvas, text='Testing') # canvas.create_window(50, 50, window.label) canvas.grid(column=0,row=0) class Expression: """représente une expression arithmétique sous forme d'un arbre""" def __init__ (self, valeur_racine, fils_gauche, fils_droit): self.val_racine = valeur_racine self.gauche = fils_gauche self.droit = fils_droit def evalue (self) : if self.gauche == None and self.droit == None : return self.val_racine if self.gauche != None: #on ne met pas elif car les cas sont indépendants" gauche_val = self.gauche.evalue() else: gauche_val = 0 if self.droit != None: droite_val = self.droit.evalue() else: droite_val = 0 if self.val_racine == '+': return gauche_val + droite_val elif self.val_racine == '-': return gauche_val - droite_val elif self.val_racine == '*': return gauche_val * droite_val else : raise ValueError ("Cette commande ne peut pas être effectuer") def __str__(self): result = "" if self.droit: result = result + str(self.droit) result = result + str(self.val_racine) + "\n" """le "/n" c'est pour avoir une nouvelle ligne de l'arbre""" if self.gauche: result += str(self.gauche) return result def multiplication(self): """Multiplie la valeur des fils gauche et droits""" if self.gauche == int and self.droit == int : return self.gauche * self.droit def addition(self): """Additionne les valeurs des fils gauche et droits""" if self.gauche == int and self.droit == int : return self.gauche + self.droit #test exp = Expression('*', Expression(6, None, None), Expression('+', Expression(4, None, None), Expression(3, None, None) ) ) # Label pour l'interface label_1 = tk.Label(fen, text="Entrez l'expression :") label_1.grid() # Champ de texte pour l'entrée de l'expression entry = tk.Entry(fen, width=30) entry.grid() # Bouton pour calculer l'expression #btn_calculer = tk.Button(fenetre, text="Calculer", command=evaluer_expression) #btn_calculer.pack() # Label pour afficher le résultat label_2 = tk.Label(fen, text="Résultat: ") label_2.grid() # Lancement de l'interface graphique fen.mainloop()