Calculette pour les pro-points w-w python 3.2

Contenu du snippet

Grand débutant (2 mois), j'ai réalisé cette petite calculette qui donne les points ww en fonction des teneurs en protéines, glucides, lipides et fibres d'un aliment, calcul par portions de 100grs ou selon un poids choisi.

Merci d'avance de me faire part de vos suggestions ;-)

Source / Exemple :


#!/usr/bin/python3
# -*- coding: utf-8 -*-
#----------------------------------------------------------------------------
# Nom: wwtk.py  
#
# Description: Calculette pour les pro-points de weight-watchers
#
# Auteur: Pierre Boulanger - brp@brp-log.eu
#
# Version : 1.0
#
# Creation le: 01/02/2013
#----------------------------------------------------------------------------
from tkinter import *
from tkinter import font

#initialisation de la variable globale Calculer
def Calculer():    
    a = float(Entr1.get())
    b = float(Entr2.get())
    c = float(Entr3.get())
    d = float(Entr4.get())
    result = a/11 + b/9 + c/4 + d/30
    result1 = round(result)
    lbl1.config(text = str(result1)+ ' Pts')
    
# pour touche "enter"    
def Calculer1(event):
    a = float(Entr1.get())
    b = float(Entr2.get())
    c = float(Entr3.get())
    d = float(Entr4.get())
    result = a/11 + b/9 + c/4 + d/30
    result1 = round(result)
    lbl1.config(text = str(result1)+ ' Pts')

# Variable globale de calcul selon le poids choisi
def Poids ():
    a = float(Entr1.get())
    b = float(Entr2.get())
    c = float(Entr3.get())
    d = float(Entr4.get())
    p = float(Entr5.get())
    resultat = a/11 + b/9 + c/4 + d/30
    resultat1 = resultat /100. * p
    result2 = round(resultat1)
    lbl2.config(text = str(result2)+ ' Pts')

def Poids1 (event):
    a = float(Entr1.get())
    b = float(Entr2.get())
    c = float(Entr3.get())
    d = float(Entr4.get())
    p = float(Entr5.get())
    resultat = a/11 + b/9 + c/4 + d/30
    resultat1 = resultat /100. * p
    result2 = round(resultat1)
    lbl2.config(text = str(result2)+ ' Pts')

# variable globale de réinitialisation
def f1():
     Entr1.delete(0, END)
     Entr2.delete(0, END)
     Entr3.delete(0, END)
     Entr4.delete(0, END)
     Entr5.delete(0, END)
     lbl1.config(text = ' ')
     lbl2.config(text = ' ')
     
def f2(event):
     Entr1.delete(0, END)
     Entr2.delete(0, END)
     Entr3.delete(0, END)
     Entr4.delete(0, END)
     Entr5.delete(0, END)
     lbl1.config(text = ' ')
     lbl2.config(text = ' ')
     
# Variable globale quit sur appuy enter
def quitte (event):
    Mafenetre.destroy ()

# Création de la fenêtre principale
Mafenetre= Tk()

Mafenetre.title('Propoints WW')
#Mafenetre.geometry('350x295')==============================> En fait suivant le pc ou le prog est exécuté,
#la fenêtre n'est pas bien dimensionnée, il vaut mieux ne pas mettre geometry
#et laisser la femêtre s'auto-dimensionner.
Mafenetre.configure(bg = 'lightblue')
Mafenetre.resizable(False,  False)
Mafenetre.iconbitmap('ww.ico')
police=font.Font(Mafenetre, weight = 'bold',  size = '10' )
police1=font.Font(Mafenetre, weight = 'bold',  size = '12' )
# Création d'un label (proteines)
Proteines = Label(Mafenetre, text = 'Entrez la quantité de protéines : ',  bg = 'lightblue',  font = police)
#positionnement du label avec la methode pack()
Proteines.grid(row = 0, column = 0, pady = 5)

# Création d'une entrée (pour les protéines)
Entr1 = Entry(Mafenetre , width = 5,  bg = 'bisque',  font = police )
# positionnement
Entr1.grid(row = 0, column = 1)

# Création d'un label 
Glucides = Label(Mafenetre, text = 'Entrez la quantité de glucides : ',  bg = 'lightblue', font = police)
#positionnement du label avec la methode pack()
Glucides.grid(row = 1, column = 0, pady = 5)

# Création d'une entrée 
Entr2 = Entry(Mafenetre , width = 5,  bg = 'bisque',  font = police)
# positionnement
Entr2.grid(row = 1, column = 1)

# Création d'un label 
Lipides = Label(Mafenetre, text = 'Entrez la quantité de lipides : ',  bg = 'lightblue',  font = police)
#positionnement du label avec la methode pack()
Lipides.grid(row = 2, column = 0, pady = 5)

# Création d'une entrée 
Entr3 = Entry(Mafenetre , width = 5,  bg = 'bisque',  font = police)
# positionnement
Entr3.grid(row = 2, column = 1)

# Création d'un label 
Fibres = Label(Mafenetre, text = 'Entrez la quantité de fibres : ',  bg = 'lightblue',  font = police)
#positionnement du label avec la methode pack()
Fibres.grid(row = 3, column = 0, pady = 5)

# Création d'une entrée 
Entr4 = Entry(Mafenetre , width = 5,  bg = 'bisque',  font = police)
# positionnement
Entr4.grid(row = 3, column = 1)

#Création d'un widget Button (bouton calculer)
BoutonCalculer = Button (Mafenetre, text = 'Calculer pour 100 grs => ',  font = police1, width = 20, command = Calculer)
#positionnement du bouton avec la methode pack()
BoutonCalculer.grid(row =4, column = 0, pady = 5)
BoutonCalculer.bind('<Return>', Calculer1)

lbl1 = Label ( bg = 'lightblue',  fg = 'red',  font = police1)
lbl1.grid(row = 4, column = 1)

#label de choix du poids
Portion = Label (Mafenetre, text = 'Pour quel poids souhaitez-vous un calcul ? ',  bg = 'lightblue',  font = police)
Portion.grid(row = 5, column = 0, pady = 5)
Entr5 = Entry (Mafenetre, width =5,  bg = 'bisque')
Entr5.grid(row = 5, column = 1)

#Création d'un widget Button (bouton calculer)
BoutonCalcule = Button (Mafenetre, text = 'ReCalculer => ',  font = police1, width = 20, command = Poids)
#positionnement du bouton avec la methode pack()
BoutonCalcule.grid(row =6, column = 0, pady = 5)
BoutonCalcule.bind('<Return>', Poids1)

lbl2 = Label ( bg = 'lightblue',  fg = 'red',  font = police1)
lbl2.grid(row = 6, column = 1)

# Création d'un bouton de réinitiliation
BoutonInitialisation=Button(Mafenetre,text="Réinitialiser",  font = police1, command=f1)
BoutonInitialisation.grid(row =7, column = 0, pady = 5)
BoutonInitialisation.bind('<Return>', f2)

# Création d'un widget button (bouton quitter)
BoutonQuitter = Button(Mafenetre, text ='Quitter',  font = police1, command = Mafenetre.destroy)
#positionnement du bouton avec la methode grid()
BoutonQuitter.grid(row = 7, column = 1, pady = 5)
BoutonQuitter.bind ('<Return>', quitte)

Mafenetre.mainloop()

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.