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

Python Discussion :

Tkinter, afficher une image avec une condition


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Tkinter, afficher une image avec une condition
    Bonjour j'ai un soucis avec l'interface graphique de mon programme, je me sert de tkinter :
    Ma fonction a pour but de réaliser un lancer de deux dés et d'en afficher l'image de leur face sur mon interface ( dans le canvas nommé can )
    Je créé donc ma valeur des dé avec random.randrange et je me sert de "if" pour ensuite afficher l'image dans mon canvas, seul problème l'image ne s'affiche pas, pourtant la condition fonctionne bien je me suis servis du print("test") pour verifier, je ne comprends donc pas quel est le soucis avec 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
     
    from tkinter import *
    import random
     
    root = Tk()
    root.title('Craps')
    root.geometry('800x600')
     
    can = Canvas(root, width = 600, height = 500, bg = "dark green")
    can.pack()
     
     
    def Lancer():
     
     
            de1 = random.randrange (1,7)
            if de1 == 1:
                print("test")
                photo = PhotoImage(file ='de1.gif')
                can.create_image(100, 100, image = photo)
            de2 = random.randrange (1,7)
            resultat = de1+de2
            print("Vous avez fait", de1, "et", de2,)
            print("Cela vous fait", resultat)
     
     
    Lancer()
     
    root.mainloop()

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 398
    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 398
    Points : 36 957
    Points
    36 957
    Par défaut
    Salut,

    Il n'est pas certain que raconter le pourquoi du comment aide à comprendre votre problème.
    Par contre, essayer de réduire les instructions du programme juste pour "reproduire" ce qui ne se passe pas bien élimine du "bruit":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from tkinter import *
     
    root = Tk()
    can = Canvas(root)
    can.pack()
     
    def Lancer():
            photo = PhotoImage(file ='de1.gif')
            can.create_image(100, 100, image = photo)
     
    Lancer()
    root.mainloop()
    comme il y a moins de "bruit" on peut essayer de jouer avec en neutralisant "lancer":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    from tkinter import *
     
    root = Tk()
    can = Canvas(root)
    can.pack()
     
     
    photo = PhotoImage(file ='de1.gif')
    can.create_image(100, 100, image = photo)
     
    def Lancer():
          pass
    Lancer ()
    root.mainloop()
    Puis on peut bouger les instructions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    from tkinter import *
     
    root = Tk()
    can = Canvas(root)
    can.pack()
     
    photo = PhotoImage(file ='de1.gif')
     
    def Lancer():
          can.create_image(100, 100, image = photo)
     
    Lancer ()
    root.mainloop()
    Ce qui vous donne une solution empirique qui vous permet d'avancer.
    Et une question sur la nature de la variable "photo" dans les cas qui "marchent" et dans le cas ou çà ne marche pas.

    - W

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  3. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  4. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  5. Insérer une légende dans une image avec une police plus petite
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 3
    Dernier message: 29/04/2006, 14h19

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