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 :

Canvas - Mon image s'affiche en dehors de ma def, mais pas quand je la met à l'intérieur. [Python 3.X]


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Canvas - Mon image s'affiche en dehors de ma def, mais pas quand je la met à l'intérieur.
    Bonjour,

    Je suis débutant sur python et avec canvas.

    Je cherche à faire un programme qui lorsque je clique sur mon bouton, lance la def correspondante, et dans la def, je lui dit de placer une image dans mon canvas.

    Cela fonctionne lorsque le code n'est pas dans la def, l'image est donc affichée par défaut au lancement de la fenêtre Tkinter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    imagedef = Image.open("/home/pi/Documents/Ressources/preview.jpg")
    resolution=(400,310)
    photodef = ImageTk.PhotoImage(imagedef.resize(resolution))
    canvas = Canvas(framepreview, width = 450, height = 350, bg='grey28')
    canvas.create_image(26,20, anchor = NW, image=photodef)
    canvas.create_text(220,175, text='Zone de prévisualisation', fill='white', font=("Arial", 15))
    canvas.grid()
    En revanche quand je fais l'appel par le bouton et la def preview, l'image ne s'affiche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def preview():
            canvas.delete("all")
            image = Image.open("/home/pi/Desktop/photo.jpg")
            resolution=(400,310)
            photo = ImageTk.PhotoImage(image.resize(resolution))
            canvas.create_image(26,20, anchor = NW, image=photo)
            canvas.create_text(120,120, text="ce texte s'affiche")
     
    def stoppreview():
            canvas.delete("all")
            canvas.create_text(220,175, text='Zone de prévisualisation', fill='white', font=("Arial", 15))
    Ces deux définitions sont appelées par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    btnpreview = Button(framepreview, text ='Previsualiser', command = preview).grid()
    btnstoppreview = Button(framepreview, text ='Stop previsualiser', command = stoppreview).grid()
    Ce que je trouve vraiment étrange, c'est que la def preview se fait bien puisque le texte s'affiche. Mais l'image non, et pas de message d'erreur.
    Je ne vois pas d'où cela vient.

    Merci de votre aide

  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
    Salut,

    Citation Envoyé par python_help Voir le message
    Ce que je trouve vraiment étrange, c'est que la def preview se fait bien puisque le texte s'affiche. Mais l'image non, et pas de message d'erreur.
    Un objet crée dans une fonction et stocké dans une variable locale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def preview():
            ...
            photo = ImageTk.PhotoImage(image.resize(resolution))
    sera détruit à la sortie de la fonction.
    Dans le cas, PhotoImage, il faut regarder la FAQ.

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Un grand merci, je n'avais pas pensé à cela et cela faisait plusieurs heures que je cherchais

    Merci !

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

Discussions similaires

  1. [OpenOffice] [Présentation] Afficher des infos sur l'écran mais pas sur la projection
    Par Michaël dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 30/05/2007, 17h32
  2. Réponses: 2
    Dernier message: 04/02/2007, 16h16
  3. [Tcl/Tk] Mon interface n'affiche pas les images
    Par randazar dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 21/11/2006, 16h48
  4. [JScrollPane][Canvas] L'image ne s'affiche pas
    Par TheReturnOfMuton dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 05/06/2006, 13h17
  5. [ImageMagick] Mon image affiche des caractères étranges
    Par renaud26 dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 17/03/2006, 17h37

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