Accueil > Forum > > > > [Python][Classe] intégration fonction "def" dans une classe
[Python][Classe] intégration fonction "def" dans une classe
samedi 28 mars 2009 à 02:28:48 |
[Python][Classe] intégration fonction "def" dans une classe

Acolyte
|
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): [code]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() [/code] j'ai essayé ceci mais j'ai échoué le code suivant trace bien le digit mais je n'arrive pas [code]from Tkinter import * class Digit(): def __init__(self, can, x, y): self.can = can self.x = x self.y = y def traceVert(self, x, y): 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): 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') def trace(self): self.seg1 = self.traceHori(self.x, self.y) self.seg2 = self.traceVert(self.x + 45, self.y + 2) self.seg3 = self.traceVert(self.x, self.y + 44) self.seg4 = self.traceHori(self.x - 45, self.y + 42) self.seg4 = self.traceVert(self.x, self.y - 42) self.seg5 = self.traceVert(self.x, self.y - 44) self.seg6 = self.traceHori(self.x, self.y + 42) def zero(self): can.itemconfigure(self.seg1, fill='red') if __name__ == "__main__": fen = Tk() can = Canvas(fen, width = 70, height = 108, bg='black') can.pack() digit1 = Digit(can, 10, 15) digit1.trace() digit1.zero() fen.mainloop() [/code] Si quelqu'un peut m'expliquer mon erreur, je lui en serai très reconnaissant D'avance merci ++ et bonne prog. ____________________________________ Acolyte vous remercie...
_______________________by Acolyte __
|
|
samedi 28 mars 2009 à 17:58:02 |
Re : [Python][Classe] intégration fonction "def" dans une classe

Acolyte
|
Réponse acceptée !
c'est bon j'ai trouvé une solution si ça intéresse des gens un afficheur 4 digits :
#!usr/bin/python
from Tkinter import *
class Digit(): def __init__(self, can, x1, y1, x2, y2): """initialisation du digit""" self.can = can # coordonnees du coin superieur gauche self.x1 = x1 self.y1 = y1 # coordonnees du coin inferieur droit self.x2 = x2 self.y2 = y2 # unite verticale self.hpas = (self.x2 - self.x1) / 6 # unite horizontale self.vpas = (self.y2 - self.y1) / 6 # tracage des segment de base self.trace() def trace(self): """affichage des segment""" self.segment1 = self.can.create_polygon(self.x1 + self.hpas, self.y1 + self.vpas, self.x1 + 2 * self.hpas, self.y1, self.x1 + 6 * self.hpas, self.y1, self.x1 + 7 * self.hpas, self.y1 + self.vpas, self.x1 + 6 * self.hpas, self.y1 + 2 * self.vpas, self.x1 + 2 * self.hpas, self.y1 + 2 * self.vpas, fill='dark red') self.segment2 = self.can.create_polygon(self.x1 + 7 * self.hpas, self.y1 + 2 * self.vpas, self.x1 + 8 * self.hpas, self.y1 + 3 * self.vpas, self.x1 + 8 * self.hpas, self.y1 + 7 * self.vpas, self.x1 + 7 * self.hpas, self.y1 + 8 * self.vpas, self.x1 + 6 * self.hpas, self.y1 + 7 * self.vpas, self.x1 + 6 * self.hpas, self.y1 + 3 * self.vpas, fill='dark red') self.segment3 = self.can.create_polygon(self.x1 + 7 * self.hpas, self.y1 + 10 * self.vpas, self.x1 + 8 * self.hpas, self.y1 + 11 * self.vpas, self.x1 + 8 * self.hpas, self.y1 + 15 * self.vpas, self.x1 + 7 * self.hpas, self.y1 + 16 * self.vpas, self.x1 + 6 * self.hpas, self.y1 + 15 * self.vpas, self.x1 + 6 * self.hpas, self.y1 + 11 * self.vpas, fill='dark red') self.segment4 = self.can.create_polygon(self.x1 + self.hpas, self.y1 + 17 * self.vpas, self.x1 + 2 * self.hpas, self.y1 + 16 * self.vpas, self.x1 + 6 * self.hpas, self.y1 + 16 * self.vpas, self.x1 + 7 * self.hpas, self.y1 + 17 * self.vpas, self.x1 + 6 * self.hpas, self.y1 + 18 * self.vpas, self.x1 + 2 * self.hpas, self.y1 + 18 * self.vpas, fill='dark red') self.segment5 = self.can.create_polygon(self.x1 + self.hpas, self.y1 + 10 * self.vpas, self.x1 + 2 * self.hpas, self.y1 + 11 * self.vpas, self.x1 + 2 * self.hpas, self.y1 + 15 * self.vpas, self.x1 + self.hpas, self.y1 + 16 * self.vpas, self.x1, self.y1 + 15 * self.vpas, self.x1, self.y1 + 11 * self.vpas, fill='dark red') self.segment6 = self.can.create_polygon(self.x1 + self.hpas, self.y1 + 2 * self.vpas, self.x1 + 2 * self.hpas, self.y1 + 3 * self.vpas, self.x1 + 2 * self.hpas, self.y1 + 7 * self.vpas, self.x1 + self.hpas, self.y1 + 8 * self.vpas, self.x1, self.y1 + 7 * self.vpas, self.x1, self.y1 + 3 * self.vpas, fill='dark red') self.segment7 = self.can.create_polygon(self.x1 + self.hpas, self.y1 + 9 * self.vpas, self.x1 + 2 * self.hpas, self.y1 + 8 * self.vpas, self.x1 + 6 * self.hpas, self.y1 + 8 * self.vpas, self.x1 + 7 * self.hpas, self.y1 + 9 * self.vpas, self.x1 + 6 * self.hpas, self.y1 + 10 * self.vpas, self.x1 + 2 * self.hpas, self.y1 + 10 * self.vpas, fill='dark red') def zero(self): """affichage d'un zero""" self.can.itemconfigure(self.segment1, fill='red') self.can.itemconfigure(self.segment2, fill='red') self.can.itemconfigure(self.segment3, fill='red') self.can.itemconfigure(self.segment4, fill='red') self.can.itemconfigure(self.segment5, fill='red') self.can.itemconfigure(self.segment6, fill='red') self.can.itemconfigure(self.segment7, fill='dark red') def un(self): """affichage d'un un""" self.can.itemconfigure(self.segment1, fill='dark red') self.can.itemconfigure(self.segment2, fill='red') self.can.itemconfigure(self.segment3, fill='red') self.can.itemconfigure(self.segment4, fill='dark red') self.can.itemconfigure(self.segment5, fill='dark red') self.can.itemconfigure(self.segment6, fill='dark red') self.can.itemconfigure(self.segment7, fill='dark red') def deux(self): """affichage d'un deux""" self.can.itemconfigure(self.segment1, fill='red') self.can.itemconfigure(self.segment2, fill='red') self.can.itemconfigure(self.segment3, fill='dark red') self.can.itemconfigure(self.segment4, fill='red') self.can.itemconfigure(self.segment5, fill='red') self.can.itemconfigure(self.segment6, fill='dark red') self.can.itemconfigure(self.segment7, fill='red') def trois(self): """affichage d'un trois""" self.can.itemconfigure(self.segment1, fill='red') self.can.itemconfigure(self.segment2, fill='red') self.can.itemconfigure(self.segment3, fill='red') self.can.itemconfigure(self.segment4, fill='red') self.can.itemconfigure(self.segment5, fill='dark red') self.can.itemconfigure(self.segment6, fill='dark red') self.can.itemconfigure(self.segment7, fill='red') def quatre(self): """affichage d'un quatre""" self.can.itemconfigure(self.segment1, fill='dark red') self.can.itemconfigure(self.segment2, fill='red') self.can.itemconfigure(self.segment3, fill='red') self.can.itemconfigure(self.segment4, fill='dark red') self.can.itemconfigure(self.segment5, fill='dark red') self.can.itemconfigure(self.segment6, fill='red') self.can.itemconfigure(self.segment7, fill='red') def cinq(self): """affichage d'un cinq""" self.can.itemconfigure(self.segment1, fill='red') self.can.itemconfigure(self.segment2, fill='dark red') self.can.itemconfigure(self.segment3, fill='red') self.can.itemconfigure(self.segment4, fill='red') self.can.itemconfigure(self.segment5, fill='dark red') self.can.itemconfigure(self.segment6, fill='red') self.can.itemconfigure(self.segment7, fill='red') def six(self): """affichage d'un six""" self.can.itemconfigure(self.segment1, fill='red') self.can.itemconfigure(self.segment2, fill='dark red') self.can.itemconfigure(self.segment3, fill='red') self.can.itemconfigure(self.segment4, fill='red') self.can.itemconfigure(self.segment5, fill='red') self.can.itemconfigure(self.segment6, fill='red') self.can.itemconfigure(self.segment7, fill='red') def sept(self): """affichage d'un sept""" self.can.itemconfigure(self.segment1, fill='red') self.can.itemconfigure(self.segment2, fill='red') self.can.itemconfigure(self.segment3, fill='red') self.can.itemconfigure(self.segment4, fill='dark red') self.can.itemconfigure(self.segment5, fill='dark red') self.can.itemconfigure(self.segment6, fill='dark red') self.can.itemconfigure(self.segment7, fill='dark red') def huit(self): """affichage d'un huit""" self.can.itemconfigure(self.segment1, fill='red') self.can.itemconfigure(self.segment2, fill='red') self.can.itemconfigure(self.segment3, fill='red') self.can.itemconfigure(self.segment4, fill='red') self.can.itemconfigure(self.segment5, fill='red') self.can.itemconfigure(self.segment6, fill='red') self.can.itemconfigure(self.segment7, fill='red') def neuf(self): """affichage d'un neuf""" self.can.itemconfigure(self.segment1, fill='red') self.can.itemconfigure(self.segment2, fill='red') self.can.itemconfigure(self.segment3, fill='red') self.can.itemconfigure(self.segment4, fill='red') self.can.itemconfigure(self.segment5, fill='dark red') self.can.itemconfigure(self.segment6, fill='red') self.can.itemconfigure(self.segment7, fill='red') 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()
++
et bonne prog.
____________________________________ Acolyte vous remercie...
_______________________by Acolyte __
|
|
Cette discussion est classée dans : self, red, can, segment, fill
Répondre à ce message
Sujets en rapport avec ce message
Problème de définition [ par amaury74 ]
Bonjours à tous,J'ai écrit plusieurs petit codes destinés à dessiner des afficheurs sur Tkinter.J'ai définie une fonction pour chaque code avec la com
Demande d'aide à l'optimisation [ par elnabo ]
Bonjour, ayant réaliser un petit code permettant de déplacer un petit rond d'avant en arrière et lui permettant des rotations, à l'aide du clavier en
phython - Excel [ par jeromecubi ]
bonjour j'ai un script python qui va me copier de données dans plusieurs fichiers XLS identiques dans un dossier pour les regrouper dans un autre fich
Diverses questions et precision [ par sheorogath ]
Bonjour,je me remets au python mais plus serieusement cette fois ci :palors j'ai plusieurs question sur des choses sur lesquels je trouve que peux d'i
Appeler une méthode d’objet juste construit / comparaison profonde [ par gaspos ]
Bonjour, y a-t-il un moyen d'appeler méthode d'objet juste construit ? <?xml:namespa
Question sur PyQt4 !!!!!! [ par Subversion ]
Bonjour à vous tous,Voilà, je dois programmer en Python via Eclipse (avec PyDev) afin d'élaborer une interface graphique. De ce fait, je suis en train
matrice symétrique [ par delaval ]
bonjour, je suis actuellement en train d'écrire une fonction symétrique qui renvoie True or False selon la matrice que je rentre. Voici mon code:class
Aide pour acquisition d'une pression [ par sebfluo ]
Bonjour a tous.Je suis entrain de réaliser un petit programme avec une interface graphique(réalisée avec QT designer et PyQT) permettant d'acquérir un
classe abstraite [ par oxkao ]
bonjours,voili voilou je me suis mis à python et je pensais (en tant que langage objet) retrouver les mêmes principe qu'en C++ ou java je cherche donc
passage d'objet en parametre d'un objet [ par oxkao ]
bonjours encore une question de nul je voudrais récupérer un objet en paramètre lors de la création d'un autre objet.en gros faire un agrégation j'ai
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE [WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE[WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE par FREMYCOMPANY
Je pense qu'ils ont besoin d'une piqure de rappel chez Microsoft : c'est bien gentil d'avoir une interface jolie, mais si c'est pour avoir un truc qui ne convainct pas dedans, c'est peine perdue.
---->
Système ouvert ----> Fermé ?
P...
Cliquez pour lire la suite de l'article par FREMYCOMPANY
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|