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
| # UMONS - Réalisé par Aline Clément et Jérôme Diricq - 2e BAC Chimie - 13/05/2011 #
from Tkinter import *
def affiche(titre, reponse): # Permet de n'afficher qu'un seul Toplevel (Fenêtre affichant les réponses) avec un destroy des précédents #
for widget in F.winfo_children():
if isinstance(widget, Toplevel):
widget.destroy()
####################################
conteneur = Toplevel(F) # Création de la fenêtre de réponse #
conteneur.title('Résultat') # Création du titre de la fenêtre #
Label(conteneur, text=titre).pack() # Label défini un fragment de texte qui peut être utilisé pour afficher des informations dans la fenêtre "conteneur" #
Label(conteneur, text='Résultat: ' + str(reponse)).pack() # Pack permet d'adapter la géométrie de la fenêtre au texte. "str" défini une chaine de caractères #
Button(conteneur, text='Ok', command=conteneur.destroy).pack(padx=5, pady=5) # Création du bouton qui détruit la fenêtre et définition de la grandeur du bouton #
# Création des fonctions permettant de convertir les températures, les formules ont été prises sur wikipedia #
def CelToFah(celsius) :
fahrenheit = 9./5.*int(celsius)+32
affiche('Conversion de Celsius en Fahrenheit', fahrenheit)
def CelToKel(celsius) :
kelvin = int(celsius)+273.15
affiche('Conversion de Celsius en Kelvin', kelvin)
def FahToCel(fahrenheit) :
celsius = 5./9.*(int(fahrenheit)-32)
affiche('Conversion de Fahrenheit en Celsius', celsius)
def KelToCel(kelvin) :
celsius = int(kelvin)-273.15
affiche('Conversion de Kelvin en Celsius', celsius)
def FahToKel(fahrenheit) :
kelvin = 5./9.*(int(fahrenheit)+459.67)
affiche('Conversion de Fahrenheit en Kelvin', kelvin)
def KelToFah(kelvin) :
fahrenheit = 9./5.*(int(kelvin)-459.67)
affiche('Conversion de Kelvin en Fahrenheit', fahrenheit)
F = Tk() # Création de la classe Tk() qui permet d'engendrer différents types de fenêtres, de modifier les tailles,... #
w = Frame(F, height=500, width=500) # Création de la fenêtre de travail et défintion des dimensions #
w.pack()
# Bouton permettant la destruction de la fenêtre et définition de sa position dans la fenêtre #
## Création de boutons de conversion. Ceux-ci vont exploiter la valeur qui sera entrée par lutilisateur (entree.get) et la fonction correspondant au bouton ##
### On utilise la fonction lambda pour pouvoir utiliser un argument dans la fonction command ###
Button(F, text='Quitter', anchor=SE, command=F.quit).pack(side=BOTTOM, anchor=SE)
Button(F, text='CelToFah', anchor=SE, command=lambda: CelToFah(entree.get())).pack(side=BOTTOM, anchor=SW)
Button(F, text='CelToKel', anchor=SW, command=lambda: CelToKel(entree.get())).pack(side=BOTTOM, anchor=SW)
Button(F, text='KelToFah', anchor=SW, command=lambda: KelToFah(entree.get())).pack(side=BOTTOM, anchor=SW)
Button(F, text='KelToCel', anchor=SW, command=lambda: KelToCel(entree.get())).pack(side=BOTTOM, anchor=SW)
Button(F, text='FahToCel', anchor=SW, command=lambda: FahToCel(entree.get())).pack(side=BOTTOM, anchor=SW)
Button(F, text='FahToKel', anchor=SW, command=lambda: FahToKel(entree.get())).pack(side=BOTTOM, anchor=SW)
# Quelques textes, affichés dans la fenêtre et entrés de la même façon que précédemment #
Label(w,text="Convertisseur température").pack()
Label(w,text="Réalisé par Aline Clément et Jérôme Diricq").pack()
Label(w, text = 'Entrez la Temperature :', anchor=SW).pack(anchor=SW) # Anchor permet de positionner le texte où l'on veut dans la fenêtre #
entree = Entry(w) # Permet à lutilisateur dentrer une valeur qui sera exploitée grâce aux boutons de conversion #
entree.pack(anchor=SW)
F.mainloop() # Permet de faire tourner le programme en boucle en attendant qu'il soit utilisé # |
Partager