cs_Acolyte
Messages postés81Date d'inscriptiondimanche 17 octobre 2004StatutMembreDernière intervention28 mars 2009
-
28 mars 2009 à 02:28
cs_Acolyte
Messages postés81Date d'inscriptiondimanche 17 octobre 2004StatutMembreDernière intervention28 mars 2009
-
28 mars 2009 à 17:58
Bonsoir à tous,
J'ai un petit problème je veux créer un module digit qui permet
d'afficher des chiffres digitaux (virtuel) comme sur les anciens radios
réveil j'ai écrit une source qui marche seulement l'écriture de mes
chiffres (des fonctions) sur l'afficheur digital sont hors de la
classe, je cherche une solution pour les insérer à la classe enfin
qu'il soit exploitable depuis un autre module
voici ma source (ici je ne post que l'exemple du zero pour raccourcir la source):
from Tkinter import *
#classe du digit
class segment():
def __init__(self, can):
"""initialisation du digit"""
self.can = can
self.x = 10
self.y = 10
def traceVert(self, x, y):
"""segment vertical"""
self.x = x
self.y = y
self.dessin = self.can.create_polygon(self.x, self.y, self.x +
5, self.y - 5, self.x + 10, self.y, self.x+10, self.y + 30, self.x + 5,
self. y + 35,self.x, self.y + 30,fill='dark red')
def traceHori(self, x, y):
"""segment horizontal"""
self.x = x
self.y = y
self.dessin = self.can.create_polygon(self.x + 5, self.y - 5,
self.x +10, self.y - 10, self.x + 45, self.y - 10, self.x + 50, self.y
- 5, self.x + 45, self.y, self.x + 10, self.y, fill='dark red')
if __name__ == "__main__":
"""neuf fonction qui affiche les segment allume:red eteint:dark red"""
def zero():
can.itemconfigure(seg1.dessin, fill='red')
can.itemconfigure(seg2.dessin, fill='red')
can.itemconfigure(seg3.dessin, fill='red')
can.itemconfigure(seg4.dessin, fill='red')
can.itemconfigure(seg5.dessin, fill='red')
can.itemconfigure(seg6.dessin, fill='red')
can.itemconfigure(seg7.dessin, fill='dark red')
fen = Tk()
can Canvas(fen, width 140, height = 108, bg='black')
can.pack()
"""creation des segment"""
seg1 = segment(can)
seg2 = segment(can)
seg3 = segment(can)
seg4 = segment(can)
seg5 = segment(can)
seg6 = segment(can)
seg7 = segment(can)
seg1.traceHori(10,16)
seg2.traceVert(55,18)
seg3.traceVert(55,62)
seg4.traceHori(10,104)
seg5.traceVert(10,62)
seg6.traceVert(10,18)
seg7.traceHori(10,60)
"""affichage du chiffre selon une donnees externe a la classe"""
a = 0
while a >= 0 or a <= 9:
a = input("saisir un nombre : ")
if a == 0:
zero()
fen.mainloop()
j'ai essayé ceci mais j'ai échoué
le code suivant trace bien le digit mais je n'arrive pas
def affichage(self, number):
"""methode d'affichage d'un chiffre"""
if number == 0:
self.zero()
if number == 1:
self.un()
if number == 2:
self.deux()
if number == 3:
self.trois()
if number == 4:
self.quatre()
if number == 5:
self.cinq()
if number == 6:
self.six()
if number == 7:
self.sept()
if number == 8:
self.huit()
if number == 9:
self.neuf()
if __name__ == "__main__":
fen = Tk() can Canvas(fen, width 250, height = 110, bg='black')
can.pack()
unite = Digit(can, 190, 10, 230, 40)
dizaine = Digit(can, 130, 10, 170, 40)
centaine = Digit(can, 70, 10, 110, 40)
millier = Digit(can, 10, 10, 50, 40)
a = 0
b = 0
while (1):
c = 0
b = 0
a = input("saisir un nombre entre 00 et 99 : ")
d = a / 1000
a -= d * 1000
c = a / 100
a -= c * 100
b = a / 10
a -= b * 10
unite.affichage(a)
dizaine.affichage(b)
centaine.affichage(c)
millier.affichage(d)
fen.mainloop()