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 :

Image non afficher


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2023
    Messages : 24
    Points : 17
    Points
    17
    Par défaut Image non afficher
    Bonjour à tous, je me tourne vers ce serveur car je n'arrive pas à afficher mon image. Hors, avant que je rajoute ma fenêtre "fenetre", tout fonctionnait. Maintenant, on voit l'emplacement de l'image mais elle ne s'affiche pas. Pouvez-vous m'aider s'il vous plaît ?

    Voici mon 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
    from tkinter import *
     
    def open_imc():
        fenetre = Toplevel()
        fenetre.title("Calcul de l'IMC")
     
     
        def compute_IMC():
            try:
                # Récupération des valeurs saisies par l'utilisateur
                poids = float(poids_entry.get())
                taille = float(taille_entry.get()) / 100  # Convertir la taille en mètres
     
                # Calcul de l'IMC
                imc = poids / (taille * taille)
                imc_label.config(text=f"IMC = {imc:.2f}")
            except ValueError:
                imc_label.config(text="Veuillez saisir des valeurs numériques.")
     
     
        # Libellé et champ de saisie pour le poids
        poids_label = Label(fenetre, text="Poids (kg):")
        poids_label.pack()
        poids_entry = Entry(fenetre)
        poids_entry.pack()
     
        # Libellé et champ de saisie pour la taille
        taille_label = Label(fenetre, text="Taille (cm):")
        taille_label.pack()
        taille_entry = Entry(fenetre)
        taille_entry.pack()
     
     
        calculer_button = Button(fenetre, text="Calculer", command=compute_IMC)
        calculer_button.pack()
     
        # Libellé pour afficher l'IMC
        imc_label = Label(fenetre, text="")
        imc_label.pack()
     
     
        photo = PhotoImage(file = r"C:\Users\Théo\Downloads\roue-calcul-imc.png")
        Button(fenetre, image=photo).pack(side=TOP)
     
    home = Tk()
    btn_imc = Button(home, text="IMC",command=open_imc)
    btn_imc.pack()
    home.mainloop()

    Voici le rendu actuel:
    Nom : appeller_print().PNG
Affichages : 82
Taille : 141,4 Ko

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par TTCFRANCE Voir le message
    Pouvez-vous m'aider s'il vous plaît ?
    La référence à l'image (photo) doit survivre à la fonction compute_IMC. Le plus simple est de faire de photo une variable globale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         def compute_IMC():
               global photo
               ...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2023
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    je vois ce que vous avez fait, cependant, je ne comprends pas pourquoi

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par wiztricks Voir le message
    La référence à l'image (photo) doit survivre à la fonction compute_IMC. Le plus simple est de faire de photo une variable globale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         def compute_IMC():
               global photo
               ...
    Moi j'aurais plutôt vu ça dans la fonction open_imc(). C'est elle qui crée la variable non ?

    Citation Envoyé par TTCFRANCE Voir le message
    je vois ce que vous avez fait, cependant, je ne comprends pas pourquoi
    Ta fonction open_imc() remplit une variable "photo" qui est locale à la fonction. Quand la fonction disparait, la variable disparait aussi.
    Pour que Tk connaisse la variable "photo" une fois la fonction terminée, il faut que cette variable survive lorsque la fonction se termine => la mettre en global

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def remplir():
    	photo=123
     
    photo=5
    print(photo)	# 5
    remplir()
    print(photo)	# toujours 5

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def remplir():
    	global photo
    	photo=123
     
    photo=5
    print(photo)	# 5
    remplir()
    print(photo)	# 123
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Moi j'aurais plutôt vu ça dans la fonction open_imc(). C'est elle qui crée la variable non ?
    Exact je me suis pris les pieds dans les indentations: désolé!

    Citation Envoyé par TTCFRANCE Voir le message
    je vois ce que vous avez fait, cependant, je ne comprends pas pourquoi
    Une question serait "pourquoi ne pas avoir besoin de faire quoi que ce soit pour Label, Entry, Button,... aussi crées dans cette fonction?": ils ne disparaissent pas pour autant.
    Quelque part, c'est le choix des développeurs de tkinter (puisqu'il y a des objets qui survivent et que d'autres non). Ils auraient pu faire autrement (et il n'y a qu'en essayant de se mettre à leur place quant à concevoir un équivalent de tkinter qu'on pourra comprendre le pourquoi).... et tant qu'ils mentionnent cela dans le mode d'emploi, on a juste à faire avec (sans forcément en "comprendre" les détails).

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

Discussions similaires

  1. [IMAGE NON AFFICHE AVEC ONGLET]
    Par onigiri03 dans le forum GTK+
    Réponses: 2
    Dernier message: 05/04/2013, 11h16
  2. Image d'un Jpanel non afficher a l'ecran
    Par akrom dans le forum 2D
    Réponses: 2
    Dernier message: 04/03/2011, 14h47
  3. afficher les images non supportees par D7
    Par Montor dans le forum Contribuez
    Réponses: 2
    Dernier message: 26/12/2009, 12h09
  4. Image non embed qui ne s'affiche pas
    Par Peerofloo dans le forum MXML
    Réponses: 0
    Dernier message: 20/05/2009, 15h09
  5. [AJAX] Afficher une image non enregistrée sur le serveur
    Par magicbisous-nours dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/01/2009, 09h19

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