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 :

insertion d'une image


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Mai 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Mai 2011
    Messages : 41
    Par défaut insertion d'une image
    Bonjour,

    je suis débutante en Python, et je veux faire une interface graphique qui comprend deux boutons('quitter' et 'démarrer') et un label ('butée sphérique')
    et entre ces 2 boutons et le label je veux insérer une photo de la butée sphérique.
    cette interface graphique représente la page de démarrage du mon programme.
    pour les boutons et le label j'arrive à le faire sous python mais à propos l'insertion du photo j'ai pas une idée claire comment le faire.

    merci d'avance
    Cordialement

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Bonjour,

    Tu ne nous dis pas quel framework graphique utilises-tu.

    Si tu débutes, on peut supposer que tu utilises TKinter, tu as vu qu'il y avait ici un cours dédié aux débutants:

    http://python.developpez.com/cours/TutoSwinnen/

    Si mes souvenirs sont bons, il aborde assez vite le traitement des images dans les interfaces.

    C'est plus tout jeune comme cours, mais pour démarrer avec les interfaces graphiques il est toujours d'actualité.

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonsoir,

    Citation Envoyé par VinsS Voir le message
    Tu ne nous dis pas quel framework graphique utilises-tu.
    Ben oui... C'est dans le sous forum Tkinter

    Dans votre cas (simple) vous devez utiliser un Widget Label avec PhotoImage. Soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    #
    #
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
     
    w = Tk.Tk()
    img = Tk.PhotoImage(file="image.gif")
    l = Tk.Label(w, image=img)
    l.pack()
    w.mainloop()
    Mots clés pour la suite 'Toplevel' (Une seule instance Tk()) et 'photoImage référence'.

    Bonne découverte.

    @+

  4. #4
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Mai 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Mai 2011
    Messages : 41
    Par défaut
    Bonjour,

    Merci pour les réponses.
    Pourrez vous me donner des exemples des scripts ( simples) pour que je puisse le refaire comme entrainement.
    Merci d'avance

  5. #5
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    Si tu n'utilise pas le format gif (le seule accepter par Tkinter pourt les photo) il faut passer par le module PIL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    from Tkinter import *
    from PIL import Image, ImageTk
     
    fen=Tk()
    img=[Image.open(chemin/vers/ton/image)] #Il faut conserver l'instance de ton image dans un conteneur
    img_to_tk=[ImageTk.PhotoImage(image=img[0])] #il faut conserver l'instance de ton image dans un conteneur
    lab=Label(fen, image=img_to_tk[0])
    lab.pack()
    fen.mainloop()
    Bon python a toi.

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonsoir,



    Pour une fois je ne vais pas corriger la réponse précédente.
    N'en prend pas compte foufaa33.

    @Luke spywoker: C'est quoi ce code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    from Tkinter import *
    Compatibilité Python 2.x/3.x
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    img=[Image.open(chemin/vers/ton/image)] #Il faut conserver l'instance de ton image dans un conteneur
    img_to_tk=[ImageTk.PhotoImage(image=img[0])] #il faut conserver l'instance de ton image dans un conteneur
    lab=Label(fen, image=img_to_tk[0])
    ???!!!! Ok pour la référence mais la je doute de votre compréhension du fait de garder la référence.
    A revoir il me semble.
    @+

  7. #7
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Citation Envoyé par foufaa33 Voir le message
    'butée sphérique'
    C'est à dire ?
    Voici pour ce qui est de la transparence ('butée sphérique' ?) des gif sous Tkinter
    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
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    #
    #
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
     
    w = Tk.Tk()
    img = Tk.PhotoImage(file="image.gif")
    c = Tk.Canvas(w, bg ='black')
    c.pack()
    c.create_image(50, 50, image=img)
    w.mainloop()
    @+

  8. #8
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Note:
    Citation Envoyé par PauseKawa Voir le message
    Voici pour ce qui est de la transparence
    Je parle de la transparence par rapport à la fenêtre (et ici pour le Canvas), pas de la transparence de celle ci (roottk.wm_attributes('alpha', 0) sous Windows) bien sur.

  9. #9
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Mai 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Mai 2011
    Messages : 41
    Par défaut
    Bonjour,

    merci pour les réponses.
    ma question est maintenant comment insérer une photo.jpg

    Cordialement

  10. #10
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Pour le format jpg c'est PIL
    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
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    #
    #
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
    from PIL import Image, ImageTk
     
    w = Tk.Tk()
    #photo = Image.open("image.jpg") # Ouverture de l'image avec PIL
    #img = ImageTk.PhotoImage(photo) # Transformation en image compatible Tkinter
    img = ImageTk.PhotoImage(Image.open("image.jpg"))
    l = Tk.Label(w, image=img)
    l.image = img # < Garder la référence
    l.pack()
    w.mainloop()
    Par contre cela n'existe pas encore pour Python 3.
    Voici deux ports non officiel pour Python 3
    pil-py3k
    pil

    @+

  11. #11
    Membre averti
    Femme Profil pro
    étudiante
    Inscrit en
    Mai 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Mai 2011
    Messages : 41
    Par défaut
    Bonjour,

    j'ai essayé d'insérer le code d'insertion d'une image.gif dans le programme principale ; mais ça marche pas.
    le code est le suivant:

    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
    # Nom du programme : Sphérical bearings
    # compatibilité :
    import os
    # Interface graphique :
    from tkinter import*
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
     
    #-----------------------------définition des fonctions-------------------------
     
    # Fontion d'introduction du matériau :   
    def matériau():
        fen1=Toplevel(fen)
        fen1.title("Matériaux")
        Label(fen1, text="#--------Matériaux--------#", fg="blue").grid(row=0, column=1, pady=5, padx=5)
        Label(fen1, text="introduisez le matériaux", fg="red").grid(row=1, column=0, pady=5, padx=5)
        entr1=Entry(fen1)
        entr1.grid(row=1, column=3, pady=5, padx=5)
        entr1.focus_set()
        Label(fen1, text="le module d'Young", fg="red").grid(row=2, column=0, pady=5, padx=5)
        entr2=Entry(fen1)
        entr2.grid(row=2, column=3, pady=5, padx=5)
        entr2.focus_set()
        Label(fen1, text="le coefficient du poisson", fg="red").grid(row=3, column=0, pady=5, padx=5)
        entr3=Entry(fen1)
        entr3.grid(row=3, column=3, pady=5, padx=5)
        entr3.focus_set()
        Label(fen1, text="Rm", fg="red").grid(row=4, column=0, pady=5, padx=5)
        entr4=Entry(fen1)
        entr4.grid(row=4, column=3, pady=5, padx=5)
        entr4.focus_set()
        Label(fen1, text="Re", fg="red").grid(row=5, column=0, pady=5, padx=5)
        entr5=Entry(fen1)
        entr5.grid(row=5, column=3, pady=5, padx=5)
        entr5.focus_set()
        Button(fen1, text='Précédant', command=fen.deiconify).grid(row=6, column=0, pady=5, padx=5)
        Button(fen1, text='Suivant').grid(row=6, column=3, pady=5, padx=5)
     
    #-------------------------------Corps du programme------------------------------
     
    fen=Tk.Tk()
    fen.title("Spherical bearing")
    Label(fen, text="#--------Spherical bearing--------#", fg="blue").grid(row=0, column=1, pady=5, padx=5)
    photo= Tk.PhotoImage(file="cartoon_037.gif")
    l = Tk.Label(fen, image=photo)
    l.pack()
    Button(fen, text="Quit", fg="purple",command=fen.destroy).grid(row=2, column=0, pady=5, padx=5)
    Button(fen, text="Start", fg="purple",command=matériau).grid(row=2, column=2, pady=5, padx=5)
    fen.mainloop()

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

Discussions similaires

  1. [ezPDF] Insertion d'une image !
    Par Dsphinx dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 22/03/2007, 14h27
  2. [RTF] Insertion d'une image BMP
    Par didinel dans le forum Autres langages
    Réponses: 20
    Dernier message: 04/12/2006, 17h34
  3. problème pour faire un insert avec une image
    Par vbcasimir dans le forum Modules
    Réponses: 3
    Dernier message: 02/11/2005, 09h21
  4. Insertion d'une image BMP dans un fichier RTF
    Par didinel dans le forum MFC
    Réponses: 8
    Dernier message: 18/08/2005, 09h24
  5. Insertion d'une image dans la une base mysql...
    Par Angeldu74 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 01/06/2005, 14h00

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