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 :

probleme avec insertion images


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut probleme avec insertion images
    salut. je veux créer une une fenêtre pour afficher 2 images différentes (an appuyant sur 1 des 2 buttons). voila le code mais il marche pas

    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
     
    from Tkinter import *
     
    #Variables globales
    # taille de l'image
    l = 300
    h = 300
    # tableau indexe par des noms
    f = {'largeur':l,'hauteur':h,'cadre':None,'image':None}
    fen3=Tk()
     
    #fonction effacer
    def img_pgm():
        photo=PhotoImage(file="image.pgm") # ouverture de l'image pgm
        largeur=photo.width(); hauteur=photo.height() # determination des dimensions
        img=fond.create_image(largeur/2+1, hauteur/2+1,image=photo)
        fen3.geometry(str(largeur+2)+'x'+str(hauteur+30))
        fen3.title(str(largeur)+'x'+str(hauteur))
     
    def img_ppm():
        photo=PhotoImage(file="image.ppm") # ouverture de l'image ppm
        largeur=photo.width(); hauteur=photo.height() # determination des dimensions
        img=fond.create_image(largeur/2+1, hauteur/2+1,image=photo)    
        fen3.geometry(str(largeur+2)+'x'+str(hauteur+30))
        fen3.title(str(largeur)+'x'+str(hauteur))
     
    fond=Canvas(fen3, height=h, width=l)
    fond.pack()
     
    bout1=Button(fen3,text='quitter', command=fen3.quit)
    bout1.pack(side=LEFT)
     
    bout3=Button(fen3,text='image PGM', command=img_pgm) # afficher l'image pgm
    bout3.pack(side=LEFT)
     
    bout4=Button(fen3,text='image PPM', command=img_ppm)# afficher l'image ppm
    bout4.pack(side=RIGHT)
     
     
    #fen3.resizable(width=False, height=False)
    fen3.mainloop()
    fen3.destroy()
    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    J'ai lu ton post en diago car je suis au boulot, mais je suis pas certain que le format pgm soit accepté dans les canvas

    Sinon pour t'aider tu peux aussi regarder dans le tuto de G. SWINNEN téléchargeable ici.

    Il est assez bien fait et traite l'import des images.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  3. #3
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    J'ai pris 5min de plus pour regarder ton code et l'essayer.

    J'ai noté deux ou trois erreurs. Comme j'ai pas mal de boulot, je te donne un exemple qui fonctionne.

    N'hésite pas à consulter le tuto de G. SWINNEN.

    Bye.

    Exemple:

    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 *
     
    #fonction effacer
    def img_pgm():
        photo.configure(file="essais1.gif") # ouverture de l'image pgm
     
    def img_ppm():
        photo.configure(file="essais2.gif") # ouverture de l'image ppm
     
    fen3=Tk()
     
    fond=Canvas(fen3, height= 300, width= 300)
    photo = PhotoImage(file ='essais.gif')
    item = fond.create_image(200, 200, image = photo)
    fond.pack()
     
    bout1=Button(fen3,text='quitter', command=fen3.quit)
    bout1.pack(side=LEFT)
     
    bout3=Button(fen3,text='image PGM', command=img_pgm) # afficher l'image pgm
    bout3.pack(side=LEFT)
     
    bout4=Button(fen3,text='image PPM', command=img_ppm)# afficher l'image ppm
    bout4.pack(side=RIGHT)
     
     
    #fen3.resizable(width=False, height=False)
     
    fen3.mainloop()
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut
    Jiyuu ) merci, ca marche;

    au niveau de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item = fond.create_image(200, 200, image = photo)
    j'ai modifie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item = fond.create_image(150, 150, image = photo)
    pour afficher les images en totalité

    la problème c'est que j'ai ajoute une fonction effacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def effacer:
    fond.delete(ALL)
    et un bouton pour la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bout2=Button(fen3, text='effacer',command=effacer)
    bout2.pack()
    il efface l'image mais la problème c'est que si âpres je fais clic sur le buton "image PGM" ou "image PPM" il ne m'affiche pas les images. merci

  5. #5
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par andress33 Voir le message
    Jiyuu ) merci, ca marche;
    De rien


    la problème c'est que j'ai ajoute une fonction effacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def effacer:
    fond.delete(ALL)
    et un bouton pour la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bout2=Button(fen3, text='effacer',command=effacer)
    bout2.pack()
    il efface l'image mais la problème c'est que si âpres je fais clic sur le buton "image PGM" ou "image PPM" il ne m'affiche pas les images. merci
    Je n'ai pas trouvé encore de soluce. Pour le moment tu peux créer une image de la taille et de la couleur de ton canvas et l'appeler... Système D.

    Je regarderai ça ce soir ou ce week-end.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut
    j'ai trouve la solution.
    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
    # -*- coding:utf-8 -*-
    from Tkinter import *
     
    #Variables globales
    # taille de l'image
    l = 300
    h = 300
     # tableau indexe par des noms
    f = {'largeur':l,'hauteur':h,'cadre':None,'image':None}
     
    #fonction effacer
    def effacer():
        fond.delete('all')
     
    #fonction afficher image pgm
    def img_pgm():
        item=fond.create_image(150,150,image=photo)
        photo.configure(file="carte-pgm-binaire.pgm")
     
     
    #fonction afficher image ppm
    def img_ppm():
        item=fond.create_image(150,150,image=photo)
        photo.configure(file="carte-ppm-binaire.ppm")
     
     
    #fenetre
    fen3=Tk()
     
    #creation de canvas
    fond=Canvas(fen3, height=300, width=300, bg="black")
    photo=PhotoImage(file="carte-pgm-binaire.pgm")
    item=fond.create_image(150,150,image=photo)
    fond.pack(side=LEFT)
     
    #button afficher carte pgm
    bout3=Button(fen3,text='image PGM', command=img_pgm)
    bout3.pack()
     
    #button afficher carte ppm
    bout4=Button(fen3,text='image PPM', command=img_ppm)
    bout4.pack()
     
    #buton quitter
    bout1=Button(fen3,text='quitter', command=fen3.quit)
    bout1.pack()
     
    #buton effacer
    bout2=Button(fen3,text='effacer', command=effacer)
    bout2.pack()
     
    fen3.resizable(width=False, height=False)
    fen3.mainloop()
    #fen3.destroy()
    la probleme a ete au niveau de functions img_pgm() et img_ppm(). quand tu fait clic sur le buton "effacer" il efface le lien vers l'image. il e suffisant d'ecrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def img_pgm():
        item=fond.create_image(150,150,image=photo)
        photo.configure(file="carte-pgm-binaire.pgm")
    
    et
    
    def img_ppm():
        item=fond.create_image(150,150,image=photo)
        photo.configure(file="carte-ppm-binaire.ppm")

    merci Jiyuu

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

Discussions similaires

  1. [bmp]probleme avec les images dont la largeur est >256
    Par delfare dans le forum Développement 2D, 3D et Jeux
    Réponses: 8
    Dernier message: 15/02/2006, 16h59
  2. Problème avec l'image initrd
    Par Invité dans le forum Administration système
    Réponses: 1
    Dernier message: 21/12/2005, 16h16
  3. probleme avec insert into
    Par bscorpion dans le forum Langage SQL
    Réponses: 5
    Dernier message: 05/07/2005, 13h00
  4. Problem avec insertion de l'heure
    Par moniphal dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 29/04/2005, 11h27
  5. [ADO.NET] Problème avec Insert dans base de données
    Par mpascolo dans le forum Accès aux données
    Réponses: 9
    Dernier message: 24/01/2005, 09h36

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