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

GUI Python Discussion :

feux de carrefour


Sujet :

GUI Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut feux de carrefour
    Bonsoir,

    je teste ce programme et j'ai du mal avec la fonction time.sleep()

    quelqu'un aurait-il un éclairage

    Merci

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    #!/usr/bin/python
    # -*- coding: cp1252 -*-
     
     
    # mon projet de feux de carrefour
    # avec tkinter
    from Tkinter import*
    #! /usr/bin/env python
    # -*- coding: Latin-1 -*-
     
    # Petit exercice utilisant la librairie graphique Tkinter
     
    import time
    # programme principal
    # les variables suivantes seront utilisées de manière globale :
    x1, y1 =200,20        # coordonnées initiales
    x2, y2 =280,570        # coordonnées initiales de la voiture
     
     
    # Création du widget principal ("maître") :
    root=Tk()# -*- coding: cp1252 -*-
     
    root.title("Exercice d'animation avec Tkinter")
    # création des widgets "esclaves" :
     
    # dessiner le fond
     
    a = 0
    b = 0
     
    can1 = Canvas(root, bg='dark grey',height=640,width=480)
    feux=can1.create_rectangle(100,100,290,590,width=5,fill='black')
     
     
    led1=can1.create_oval(125,125,250,250,width=5,fill='white')
    led2=can1.create_oval(125,280,250,400,width=5,fill='white')
    led3=can1.create_oval(125,405,250,530,width=5,fill='white')
     
    time.sleep(3)
     
    # while  a  < 1 : 
        # print a
    led1=can1.create_oval(125,125,250,250,width=5,fill='red')
    time.sleep(3)
    led1=can1.create_oval(125,125,250,250,width=5,fill='white')
    led2=can1.create_oval(125,280,250,400,width=5,fill='yellow')   
    #time.sleep(3)      
    #    led3=can1.create_oval(125,445,250,530,width=5,fill='green')        
    #    time.sleep(30)        
    #    led3=can1.create_oval(125,405,250,530,width=5,fill='white')        
    # while b < 7 :             
    #    led2=can1.create_oval(125,280,250,400,width=5,fill='orange')            
    #    time.sleep(5)            
    #    b = b+1            
    #    led2=can1.create_oval(125,280,250,400,width=5,fill='white')
    # return
    can1.pack(side=LEFT)
     
     
     
    Button(root,text='Quitter',command=root.quit).pack(side=BOTTOM)
     
    # Button(fen, text='Start', command =start).pack(side =LEFT, padx =10)
     
     
    # démarrage du réceptionnaire d'évènements (boucle principale) :
    root.mainloop()

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 052
    Points : 1 383
    Points
    1 383
    Par défaut
    et la question est ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonsoir,

    J'essaye de simuler un feux de carrefour.

    Au départ les voyants sont blancs
    Ensuite j'affiche le rouge 5 s ...


    A partir de la fonction time.sleep me pose problème
    Existe -t-il une methode ou une instruction pour attendre la fin des instructions précédentes

    ....
    Puis le vert 30s

    je fais clignoter l'orange ...
    Merci

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir,

    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
    #!/usr/bin/python
    # -*- coding: cp1252 -*-
     
     
    from Tkinter import *
     
    def start():
        if can1.itemcget(led2, 'fill') == 'orange':
            can1.itemconfigure(led1, fill = 'red')
            can1.itemconfigure(led2, fill = 'white')
            can1.itemconfigure(led3, fill = 'white')
        elif can1.itemcget(led1, 'fill') == 'red':
            can1.itemconfigure(led1, fill = 'white')
            can1.itemconfigure(led2, fill = 'white')
            can1.itemconfigure(led3, fill = 'green')
        elif can1.itemcget(led3, 'fill') == 'green':
            can1.itemconfigure(led1, fill = 'white')
            can1.itemconfigure(led2, fill = 'orange')
            can1.itemconfigure(led3, fill = 'white')
        root.after(1500, start)
     
    root=Tk()
    root.title("Exercice d'animation avec Tkinter")
    can1 = Canvas(root, bg='dark grey',height=640,width=480)
    feux=can1.create_rectangle(100,100,290,590,width=5,fill='black')
    can1.pack(side=LEFT)
    Button(root,text='Quitter',command=root.quit).pack(side=BOTTOM)
    led1=can1.create_oval(125,125,250,250,width=5,fill='white')
    led2=can1.create_oval(125,280,250,400,width=5,fill='white')
    led3=can1.create_oval(125,405,250,530,width=5,fill='white')
    can1.itemconfigure(led1, fill = 'red')
    start()
    root.mainloop()
    A toi de gérer avec root.after(1500, start) et les if de start.

    @+
    Merci d'utiliser le forum pour les questions techniques.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup

    Surtout PauseKawa

    vous êtes tous formidable
    A bientôt

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

Discussions similaires

  1. [Dev-Pascal] Simulation d'un carrefour muni de feux de signalisation
    Par daloisme dans le forum Autres IDE
    Réponses: 2
    Dernier message: 12/04/2015, 23h20
  2. commande de feux tricolores de carrefours sous labview
    Par aloumds dans le forum LabVIEW
    Réponses: 1
    Dernier message: 07/12/2009, 17h31
  3. Sémaphore, traversée d'un carrefour sans feu
    Par Jopzeut dans le forum Linux
    Réponses: 7
    Dernier message: 08/05/2008, 16h01
  4. Carrefour routier + feux
    Par A0080 dans le forum Débuter
    Réponses: 16
    Dernier message: 03/05/2008, 13h05
  5. Composant image (feux)
    Par maredami dans le forum Composants VCL
    Réponses: 11
    Dernier message: 17/02/2006, 17h43

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