Afficheur 7 segments

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 902 fois - Téléchargée 17 fois

Contenu du snippet

Ben c'est juste un afficheur 7 segemnts(affiche les nombres de 0 à 9)relié a votre propre clavier numérique.

Source / Exemple :


# -*- coding: iso8859-15 -*-

from Tkinter import*

dic={1: (70, 45, 130, 35), 2: (130, 45, 140, 95), 3: (130, 105, 140, 165), 4: (130, 165, 70, 175),
 5: (60, 165, 70, 105), 6: (70, 95, 60, 45), 7: (70, 95, 130, 105)}
code={1:(2,3),2:(1,2,7,5,4),3:(1,2,7,3,4),4:(6,7,2,3),5:(1,6,7,3,4),6:(1,6,5,4,3,7),7:(1,2,3),8:(1,2,3,4,5,6,7)
      ,9:(6,1,2,3,4,7),0:(1,2,3,4,5,6)}
class Afficheur(Frame):

        def __init__(self):
                Frame.__init__(self)
                self.master.title("::.Afficheur Sept Segments.::")
                self.configure(bg="grey40",bd=0,relief=FLAT)
                self.master.resizable(width=False, height=False)
                self.master.protocol("WM_DELETE_WINDOW", self.quitter)
                self.pack(padx =8, pady =8)
                self.lst=[]
                self.build()

        def build(self):
                self.can=Canvas(self,bg='black',relief=FLAT,width =200,height =200)
                self.can.grid(row=0,column=0)
                liste=[]
                for i in [1,2,3,4,5,6,7]:                                   #Mise en place des segments de l'afficheur
                        v=dic[i]
                        liste.append(v)
                        for (w,x,y,z) in liste:
                                p=self.can.create_rectangle(w,x,y,z,fill='black')
                                self.lst.append(p)
                                liste=[]
                fram=Frame(self,bd=0,relief=FLAT,bg='white')
                fram.grid(row=0,column=1)
                Button(fram,text='1',font='arial 10 bold',bg='white',relief=FLAT,
                       command= lambda arg=1: self.affiche(arg)).grid(row=1,column=1,padx=2,pady=2)     #Mise en place des boutons du clavier numerique
                Button(fram,text='2',font='arial 10 bold',bg='white',relief=FLAT,
                       command= lambda arg=2: self.affiche(arg)).grid(row=1,column=2,padx=2,pady=2)
                Button(fram,text='3',font='arial 10 bold',bg='white',relief=FLAT,
                       command= lambda arg=3: self.affiche(arg)).grid(row=1,column=3,padx=2,pady=2)
                Button(fram,text='4',font='arial 10 bold',bg='white',relief=FLAT,
                       command= lambda arg=4: self.affiche(arg)).grid(row=2,column=1,padx=2,pady=2)
                Button(fram,text='5',font='arial 10 bold',bg='white',relief=FLAT,
                       command= lambda arg=5: self.affiche(arg)).grid(row=2,column=2,padx=2,pady=2)
                Button(fram,text='6',font='arial 10 bold',bg='white',relief=FLAT,
                       command= lambda arg=6: self.affiche(arg)).grid(row=2,column=3,padx=2,pady=2)
                Button(fram,text='7',font='arial 10 bold',bg='white',relief=FLAT,
                       command= lambda arg=7: self.affiche(arg)).grid(row=3,column=1,padx=2,pady=2)
                Button(fram,text='8',font='arial 10 bold',bg='white',relief=FLAT,
                       command= lambda arg=8: self.affiche(arg)).grid(row=3,column=2,padx=2,pady=2)
                Button(fram,text='9',font='arial 10 bold',bg='white',relief=FLAT,
                       command= lambda arg=9: self.affiche(arg)).grid(row=3,column=3,padx=2,pady=2)
                Button(fram,text='0',font='arial 10 bold',bg='white',relief=FLAT,
                       command= lambda arg=0: self.affiche(arg)).grid(row=4,column=1,columnspan=3,padx=2,pady=2)
                Button(self,text='Quitter',font='arial 10 bold',bg='grey40',relief=FLAT,command=self.quitter).grid(pady=2)
                self.can.bind_all('<Key>',self.touche)
                self.master.bind('<Escape>',self.quitter)                                   #Pour sortir avec la touche Echap

        def quitter(self,event=None):
                self.can.delete(ALL)
                self.master.destroy()

	def affiche(self,arg=None):
                self.initialisation()
                v=list(code[arg])
                for i in v:
                        self.can.itemconfig(i,fill='red')
                

        def initialisation(self):
                for i in self.lst:
                        self.can.itemconfig(i,fill='black')
                        
        def touche(self,event=None):
                try:    a=int(event.char)
                except: pass
                else:
                        self.initialisation()
                        v=list(code[a])
                        for i in v:
                                self.can.itemconfig(i,fill='red')

if __name__=='__main__':
        app=Afficheur()
        app.mainloop()

Conclusion :


C'est mon premier code.Merci

A voir également

Ajouter un commentaire

Commentaires

mouss11
Messages postés
43
Date d'inscription
mercredi 22 mai 2002
Statut
Membre
Dernière intervention
29 octobre 2007
-
Original comme code, marche impeccable.
Qui sait, ça pourrait me servir pour un affichage.
Bonne continuation
aera group
Messages postés
390
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
8 novembre 2010
8 -
Ouai, c'est pas mal pour un premier code !!! 8/10
orguesauxerre
Messages postés
3
Date d'inscription
vendredi 19 août 2011
Statut
Membre
Dernière intervention
19 août 2011
-
Je cherche la même chose, mais en HTML...
Cordialement.
J-M d'orguesauxerre

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.