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 :

Affichage d'image tout en continuant le code en arrière plan


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    administrateur d'une ASBL ayant quelques bases de programmation
    Inscrit en
    Décembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : administrateur d'une ASBL ayant quelques bases de programmation

    Informations forums :
    Inscription : Décembre 2020
    Messages : 2
    Par défaut Affichage d'image tout en continuant le code en arrière plan
    Bonjour à tous,

    Je vous expose mon petit souci; je modernise la maquette d'un musée en ajoutant un écran qui affiche une image tout en allumant la Led correspondante sur la maquette, ensuite la Led change et l'image aussi. L'allumage des Led est géré (le code peut certainement être simplifié) sans difficulté. Le problème se pose lorsque j'affiche mon image... Le code gérant les Leds ne tourne plus. C'est certainement une bêtise mais n'ayant aucune notion de phyton et quelque cours de programmation en visualbasic datant de plus de 10 ans... Ici la version avec 3 Led en réalité il y en a 15 mais ça ne change rien au principe je pense. Voici le code:

    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    from tkinter import *
    import tkinter as tk
    import RPi.GPIO as GPIO #importation de la blibliothèque
    import time
     
     
    continuer = True #va me permettre de faire une boucle infinie
     
    GPIO.setmode(GPIO.BOARD)#definit le mode de numérotation
    GPIO.setwarnings(False) #on coupe les message d'alerte
     
    LED_1 = 7 #on definit le numéro du GPIO qui alimente la led
    LED_2 = 11
    LED_3 = 12
    LED_4 = 13
    LED_5 = 15
    LED_6 = 16
    LED_7 = 18
    LED_8 = 22
    LED_9 = 29
    LED_10 = 31
    LED_11 = 32
    LED_12 = 33
    LED_13 = 35
    LED_14 = 36
    LED_15 = 37
     
    #Les lignes ci dessous permettent d'éteindre toutes les led allumées au cas ou
    GPIO.setup(LED_1, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_1, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_2, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_2, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_3, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_3, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_4, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_4, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_5, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_5, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_6, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_6, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_7, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_7, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_8, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_8, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_9, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_9, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_10, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_10, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_11, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_11, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_12, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_12, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_13, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_13, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_14, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_14, GPIO.LOW) #on l'éteint
     
    GPIO.setup(LED_15, GPIO.OUT) #active le controle du GPIO
    GPIO.output(LED_15, GPIO.LOW) #on l'éteint
     
    continuer = True #va me permettre de faire une boucle infinie
     
    while continuer:
        root = tk.Tk()
        photo = tk.PhotoImage(file='rampe_acces.png')#on charge la photo
        root.attributes ('-fullscreen', True)#definit la fentre en plein écran
        label= tk.Label(root, image=photo)
        label.pack()
        root.bind('<Escape>', lambda e: root.destroy())#utilise la touche escape pour quitter
        root.mainloop()
     
        GPIO.setup(LED_1, GPIO.OUT) #active le controle du GPIO
        GPIO.output(LED_1, GPIO.HIGH) #on l'allume
        time.sleep(5)
        GPIO.output(LED_1,GPIO.LOW) #on éteint
     
     
        GPIO.setup(LED_2, GPIO.OUT) #active le controle du GPIO
        GPIO.output(LED_2,GPIO.HIGH) #on l'allume
        time.sleep(5)
        GPIO.output(LED_2, GPIO.LOW) #on éteint
     
     
        GPIO.setup(LED_3, GPIO.OUT) #active le controle du GPIO
        GPIO.output(LED_3, GPIO.HIGH)#on l'allume
        time.sleep(5)
        GPIO.output(LED_3,GPIO.LOW)

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Citation Envoyé par davinfo Voir le message
    C'est certainement une bêtise mais n'ayant aucune notion de phyton et quelque cours de programmation en visualbasic datant de plus de 10 ans...
    Pour pouvoir écrire ce genre de code, il faut maîtriser un peu tkinter et éventuellement les threads. Ce qui suppose avoir passé du temps dans les tutos.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    administrateur d'une ASBL ayant quelques bases de programmation
    Inscrit en
    Décembre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : administrateur d'une ASBL ayant quelques bases de programmation

    Informations forums :
    Inscription : Décembre 2020
    Messages : 2
    Par défaut
    Salut,
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Ce qui suppose avoir passé du temps dans les tutos.

    - W
    Je n'arrête pas de regarder des tutos et faire mes essais :-D ce que j'ai pondu là je l'ai trouvé uniquement grâce a des tuto en quelques heures, mais je suis un peu coincé depuis 15 jours car je ne trouve rien qui peut m'aider... je pense que le problème doit venir de la ligne 83:

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Citation Envoyé par davinfo Voir le message
    ce que j'ai pondu là je l'ai trouvé uniquement grâce a des tuto en quelques heures
    Si vous ouvrez un tuto. pour y trouver des trucs et les réutiliser sans trop comprendre comment çà marche... vous n'allez pas y arriver. C'est comme çà.

    Commencez par étudier la "mécanique" de ce que vous voulez faire: un thread qui déroule une activité dans son coin, l'interface graphique qui commande démarrage et arrêt du thread et faire un "prototype" qui débroussaille les interactions entre les 2.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/03/2019, 11h03
  2. Réponses: 6
    Dernier message: 03/01/2018, 19h36
  3. Code en arrière plan de l'anim
    Par recco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 09/09/2009, 21h14
  4. [AC-2007] Affichage des images en formulaire continu
    Par malingue dans le forum IHM
    Réponses: 0
    Dernier message: 01/09/2009, 00h06
  5. Problème de fenêtre modal qui ne stoppe pas le code en arrière plan
    Par Sebcaen dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 25/09/2006, 13h43

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