IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

petit train reste en gare


Sujet :

Tkinter Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Par défaut petit train reste en gare
    Bonjour,
    un programme avec Tkinter :un petit train avec des personnages qui apparaissent aux fenetres et malgré de nombreuses relectures je ne trouve pas l'erreur (le code vient de G.Swinen,donc il doit etre correct)
    Pouvez -vous m'aider?
    J'ai essayé de le lancer dans eclipse ou dans ulipad ,sans résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
    #! /usr/bin/env python 
    # -*- coding: utf-8 -*- 
    from Tkinter import *
     
    def cercle(can, x, y, r):
     
        "dessin d'un cercle de rayon <r> en <x,y> dans le canevas <can>"
        can.create_oval(x-r, y-r, x+r, y+r)
    class Application(Tk):
     
        def __init__(self):
            Tk.__init__(self) # constructeur de la classe parente
            self.can =Canvas(self, width =475, height =130, bg ="white")
            self.can.pack(side =TOP, padx =5, pady =5)
            Button(self, text ="Train", command =self.dessine).pack(side =LEFT)
            Button(self, text ="Hello", command =self.coucou).pack(side =LEFT)
     
        def dessine(self):
            "instanciation de 4 wagons dans le canevas"
            self.w1 = Wagon(self.can, 10, 30)
            self.w2 = Wagon(self.can, 130, 30)
            self.w3 = Wagon(self.can, 250, 30)
            self.w4 = Wagon(self.can, 370, 30)
     
        def coucou(self):
     
             self.w1.perso(3) # 1er wagon, 3e fenêtre
             self.w3.perso(1) # 3e wagon, 1e fenêtre
             self.w3.perso(2) # 3e wagon, 2e fenêtre
             self.w4.perso(1) # 4e wagon, 1e fenêtre
     
    class Wagon:
        def __init__(self, canev, x, y):
     
                # mémorisation des paramètres dans des variables d'instance :
            self.canev, self.x, self.y = canev, x, y
                # rectangle de base : 95x60 pixels :
            canev.create_rectangle(x, y, x+95, y+60)
                # 3 fenêtres de 25x40 pixels, écartées de 5 pixels :
            for xf in range(x+5, x+90, 30):
                canev.create_rectangle(xf, y+5, xf+25, y+40)
                # 2 roues de rayon égal à 12 pixels :
            cercle(canev, x+18, y+73, 12)
            cercle(canev, x+77, y+73, 12)
     
        def perso(self, fen):
     
                # calcul des coordonnées du centre de chaque fenêtre :
            xf = self.x + fen*30 -12
            yf = self.y + 25
            cercle(self.canev, xf, yf, 10) # visage
            cercle(self.canev, xf-5, yf-3, 2) # oeil gauche
            cercle(self.canev, xf+5, yf-3, 2) # oeil droit
            cercle(self.canev, xf, yf+5, 3) # bouche
     
    Application().mainloop()

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Par défaut
    Désolé,un problème d'indentation(bien caché!)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Par défaut
    Voila la bonne indentation....


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #! /usr/bin/env python 
    # -*- coding: utf-8 -*- 
    from Tkinter import *
     
    def cercle(can, x, y, r):
     
        "dessin d'un cercle de rayon <r> en <x,y> dans le canevas <can>"
        can.create_oval(x-r, y-r, x+r, y+r)
    class Application(Tk):
     
        def __init__(self):
            Tk.__init__(self) # constructeur de la classe parente
            self.can =Canvas(self, width =475, height =130, bg ="white")
            self.can.pack(side =TOP, padx =5, pady =5)
            Button(self, text ="Train", command =self.dessine).pack(side =LEFT)
            Button(self, text ="Hello", command =self.coucou).pack(side =LEFT)
     
        def dessine(self):
            "instanciation de 4 wagons dans le canevas"
            self.w1 = Wagon(self.can, 10, 30)
            self.w2 = Wagon(self.can, 130, 30)
            self.w3 = Wagon(self.can, 250, 30)
            self.w4 = Wagon(self.can, 370, 30)
     
        def coucou(self):
     
            self.w1.perso(3) # 1er wagon, 3e fen�tre
            self.w3.perso(1) # 3e wagon, 1e fen�tre
            self.w3.perso(2) # 3e wagon, 2e fen�tre
            self.w4.perso(1) # 4e wagon, 1e fen�tre
     
    class Wagon:
        def __init__(self, canev, x, y):
     
                # m�morisation des param�tres dans des variables d'instance :
            self.canev, self.x, self.y = canev, x, y
                # rectangle de base : 95x60 pixels :
            canev.create_rectangle(x, y, x+95, y+60)
                # 3 fen�tres de 25x40 pixels, �cart�es de 5 pixels :
            for xf in range(x+5, x+90, 30):
                canev.create_rectangle(xf, y+5, xf+25, y+40)
                # 2 roues de rayon �gal � 12 pixels :
            cercle(canev, x+18, y+73, 12)
            cercle(canev, x+77, y+73, 12)
     
        def perso(self, fen):
     
                # calcul des coordonn�es du centre de chaque fen�tre :
            xf = self.x + fen*30 -12
            yf = self.y + 25
            cercle(self.canev, xf, yf, 10) # visage
            cercle(self.canev, xf-5, yf-3, 2) # oeil gauche
            cercle(self.canev, xf+5, yf-3, 2) # oeil droit
            cercle(self.canev, xf, yf+5, 3) # bouche
     
    app = Application()
    app.mainloop()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Procédure : arrêt d'un petit train entre 2 capteurs
    Par Tommy_7 dans le forum LabVIEW
    Réponses: 2
    Dernier message: 28/03/2011, 09h27
  2. [TP]TP s'affiche en tout petit sous w2000
    Par spiroucarolo dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 21/10/2002, 16h36
  3. TBitBtn reste enfoncé
    Par TRINCAL Sylvain dans le forum C++Builder
    Réponses: 8
    Dernier message: 25/06/2002, 16h31
  4. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo