Convertisseur de température (différent et commenté)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 388 fois - Téléchargée 26 fois

Contenu du snippet

Voici une variante de convertisseur de température celcius >> fahrenheit et fahrenheit >> celcius
Je l'ai fait de facon à utiliser le moins de composants possible.

Source / Exemple :


#! /usr/bin/env python
# -*- coding: cp1252 -*-

#importation des librairie necessaire au fonctionnement de l'application
from Tkinter import *

# définition des fonction de convertion.
def convertion1(event):
    ent2.delete(0,END)  #on efface la valeur actuelle dans 'ent2'
    ent2.insert(0,str((float(ent1.get())*1.38)+32)) #on insert la nouvelle valeur dans 'ent2'

def convertion2(event):
    ent1.delete(0,END)  #on efface la valeur actuelle dans 'ent1'
    ent1.insert(0,str((float(ent2.get())-32)/1.38)) #on insert la nouvelle valeur dans 'ent1'

# création de l'application
fen=Tk()

Label(fen,text="Température en Celsius").grid() #mise en place d'un label

ent1=Entry(fen) #crétion du premier champ de saisie
ent1.grid() #méthode de mise en forme
ent1.bind("<FocusOut>",convertion1) # appel de la fonction lorsque l'on sort du champ de saisie ou
ent1.bind("<Return>",convertion1)   # lorsque l'on appuy sur la touche <ENTER> ou <RETURN>
ent1.insert(0,0)    #insertion d'une valeur par défaut dans le champ de saisie 'ent1'. La valeur est 0

Label(fen,text='Température en Fahrenheit').grid()  #mise en place d'un autre label

ent2=Entry(fen) #crétion du 2eme champ de saisie
ent2.grid() #méthode de mise en forme
ent2.bind("<FocusOut>",convertion2) # appel de la fonction lorsque l'on sort du champ de saisie ou
ent2.bind("<Return>",convertion2)   # lorsque l'on appuy sur la touche <ENTER> ou <RETURN>
ent2.insert(0,str((float(ent1.get())*1.38)+32)) #insertion dans ent2, comme valeur par défaut
                                                #de la convertion de la valeur défaut de ent1

Button(fen,text="Fermer",command=fen.quit).grid(padx=5,pady=5)  # mise en place d'un bouton
                                                                #pour fermer l'application proprement.

fen.mainloop()  #démarrage du réceptionnaire d'évènement

fen.destroy()   #destructeur de la fenêtre

#Nota: Je n'ai pas affecté de variable aux Label et au Bouton 'Fermer', car ils ne seront pas invoqués
#plus loin dans le programme.
#De plus, je n'est pas spécifier les emplacements des différents éléments, car la méthode '.grid()' met en
#place par défaut les éléments les uns en dessous des autres. J'ai juste créé mes éléments dans l'ordre dans
#lequel je souhaite les voir mis en place.

A voir également

Ajouter un commentaire

Commentaires

tipro75
Messages postés
26
Date d'inscription
lundi 22 août 2005
Statut
Membre
Dernière intervention
22 décembre 2005
1 -
pour quoi fair compliquer quant on peut fair simple, un script beaucoup plus petit :

from Tkinter import *

def convFar(event):
tF = eval(champTC.get())
varTF.set(str(tF*1.8 +32))

def convCel(event):
tC = eval(champTF.get())
varTC.set(str((tC-32)/1.8))

fen = Tk()
fen.title('Fahrenheit/Celsius')
Label(fen, text='Temp. Celsius :').grid(row =0, column =0)
varTC =StringVar()
champTC Entry(fen, textvariablevarTC)
champTC.bind("<Return>", convFar)
champTC.grid(row =0, column =1)
Label(fen, text='Temp. Fahrenheit :').grid(row =1, column =0)
varTF =StringVar()
champTF Entry(fen, textvariablevarTF)
champTF.bind("<Return>", convCel)
champTF.grid(row =1, column =1)
fen.mainloop()

et vla...
et simple en + !!
cs_airod
Messages postés
9
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
1 décembre 2005
-
ok, c'est plus cours.
Je débute, et là je suis devant qque chose que je ne connais pas encore.

StringVar().

je vais me pencher dessus.

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.