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 65
| from random import randrange
class Application(object):
"Voici une classe de résistance"
def __init__(self):
self.root=Tk()
self.root.title('Code des couleurs')
self.dessineResistance()
Label(self.root,text='Entrez la valeur de la résistance, en Ohms :').grid(row=2,column=1, columnspan=3)
Button(self.root, text='Montrer', command=self.changeCouleurs).grid(row=3, column=1)
Button(self.root,text='Quitter', command=self.root.destroy).grid(row=3, column=3)
self.entree=Entry(self.root,width=14)
self.entree.bind('<Return>',self.changeCouleurs)
self.entree.grid(row=3, column=2)
self.cc=['black', 'brown','red','orange', 'yellow', 'green', 'blue','purple', 'grey','white']
self.root.mainloop()
def dessineResistance(self):
self.can=Canvas(self.root, width=500, height=200, bg='cornflower blue')
self.can.grid(row=1,column=1, columnspan=3, padx=5, pady=5)
self.can.create_line(20,100,480,100,width=6)
self.can.create_rectangle(130,60,370,140,fill='beige', width=4)
self.ligne=[]
for x in range(170,300,48):
self.ligne.append(self.can.create_rectangle(x,62,x+36,138, fill='black', width=0))
def changeCouleurs(self):
"""Affichage des couleurscorrespondant à la valeur entrée"""
self.v1ch=self.entree.get()
try:
v=float(self.v1ch)
except:
err=1
else:
err=0
if err==1 or v<10 or v>1e11:
self.signaleErreur()
else:
li=[0]*3
logv=int(log10(v))
ordgr=10**logv
li[0]=int(v/ordgr)
decim=v/ordgr-li[0]
li[1]=int(decim*10+0.5)
li[2]=logv-1
for n in range(3):
self.can.itemconfigure(self.ligne[n], fill=self.cc[li[n]])
def signaleErreur(self):
self.entree.configure(bg='red')
for n in range(3):
self.can.itemconfigure(self.ligne[n], fill='black')
self.root.after(1000,self.videEntree)
def videEntree(self):
self.entree.configure(bg='white')
self.entree.delete(0,len(self.v1ch))
if __name__=='__main__':
from tkinter import*
from math import log10
f=Application() |
Partager