# -*- coding:utf-8 -*-

# Conversions de températures Fahrenheit <=> Celsius

from tkinter import *

class Application(Tk):

    def __init__(self):
        Tk.__init__(self)
        self.title("Conversions Celsius-Fahrenheit")

        # widgets esclaves
        # Champs pour les températures Celsius:
        txt1 = Label(master=self, text = "Température Celsius: ")
        txt1.grid(row = 1, column = 1, sticky = W)

        self.champTC = Entry(master=self)
        self.champTC.insert(INSERT, "0.0")
        self.champTC.bind("<Return>", self.convFar)
        self.champTC.grid(row=1, column=2)

        # Champs pour les températures Fahrenheit:
        txt2 = Label(master=self, text="Température Fahrenheit:")
        txt2.grid(row=2, column=1, sticky=W)

        self.champTF = Entry(master=self)
        self.champTF.insert(INSERT, "32.0")
        self.champTF.bind("<Return>", self.convCel)
        self.champTF.grid(row=2, column=2)

    # Gestionnaires d'événements:

    def convFar(self, event):
        """valeur de la température entrée,
        exprimée en degrés Fahrenheit"""
        c = float(self.champTC.get())                # récupération et conversion en float de la température Celsius
        self.champTF.delete(0, END)                  # efface le contenu du champ d'entrée
        self.champTF.insert(INSERT, str(c*1.8+32))   # insère la température correspondante en Fahrenheit dans le champ d'entrée

    def convCel(self, event):
        """valeur de la température entrée,
        exprimée en degrés Celsius"""
        f = float(self.champTF.get())                # récupération et conversion en float de la température Fahrenheit
        self.champTC.delete(0, END)                  # efface le contenu du champ d'entrée
        self.champTC.insert(INSERT, str((f-32)/1.8)) # insère la température correspondante en Celsius dans le champ d'entrée

##### Programme principal #####

monApp = Application()
monApp.mainloop()
