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 :

[Tkinter] image dans un Frame [Fait]


Sujet :

Tkinter Python

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 74
    Points
    74
    Par défaut [Tkinter] image dans un Frame
    Salut tout le monde,

    Voila un problème supplémentaire... J'avais un petit programme qui mettait des images ds une fenetre Tkinter. J'ai maintenant besoin de mettre ce programme dans un autre, plus complexe et SURTOUT dans un Frame.

    Voici le premier code sous Tkinter "normal". (n'oubliez pas de remplacer le nom de l'image par une autre se trouvant dans le meme repertoire que le fichier...)
    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
    from Tkinter import* #ON IMPORTE Tkinter
    fenetre = Tk ()   #ON OUVRE LA FENETRE TKINTER
     
    #----#----#----#----#----#----#        les messages fixes           #----#----#----#----#----#----#----#
    msg1= Label(fenetre, text ="Voyez-vous cette image ?", font = "arial 16 bold", fg = "blue").grid(row = 0, columnspan = 2)
    msg_vide = Label(fenetre).grid(row = 1, column = 0)
    msg_vide2 = Label(fenetre).grid(row = 5, column = 0)
     
    #----#----#----#----#----#----#        les VALID (boutons cliquables)           #----#----#----#----#----#----#
    bouton_yes = Button(fenetre, text =" <<OUI>> ", fg="green").grid(row=4, column=0)
    bouton_no = Button(fenetre, text="<<NON>>", fg = "red").grid(row=4, column=1)
    #----#----#----#----#----#----#        l'image...          #----#----#----#----#----#----#
    photo = PhotoImage(file ='thevip2vu.gif')
    espace_image = Canvas(fenetre, width =170, height =170, bg ='blue')
    espace_image.grid(row=3 ,columnspan=2, column=0, padx =10, pady =10)
    espace_image.create_image(85, 85, image =photo)
     
    mainloop ()
    voici ce ke ca donne chez moi:




    Voici celui sous frame mtnt
    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
    from Tkinter import*
     
    class Frame_principal (Frame):
     
     def __init__(self, boss = None):
     
      Frame.__init__(self, borderwidth = 50, bg='red')
     
      msg1= Label(self, text ="Voyez-vous cette image ?", font = "arial 16 bold", fg = "blue").grid(row = 0, columnspan = 2)
     
     
    #----#----#----#----#----#----#        les messages fixes           #----#----#----#----#----#----#----#
      msg_vide = Label(self).grid(row = 1, column = 0)
      msg_vide2 = Label(self).grid(row = 5, column = 0)
    #----#----#----#----#----#----#        les VALID (boutons cliquables)           #----#----#----#----#----#----#
      bouton_yes = Button(self, text =" <<OUI>> ", fg="green").grid(row=4, column=0)
      bouton_no = Button(self, text="<<NON>>", fg = "red").grid(row=4, column=1)
    #----#----#----#----#----#----#        l'image...          #----#----#----#----#----#----#
      photo = PhotoImage(file ='thevip2vu.gif')
      espace_image = Canvas(self, width =170, height =170, bg ='blue')
      espace_image.grid(row=3 ,columnspan=2, column=0, padx =10, pady =10)
      espace_image.create_image(85, 85, image =photo)
    class Application(Frame):
     def __init__(self, boss = None):
     
      Frame.__init__(self)
      partie_principale = Frame_principal(self)
      partie_principale.grid()
     
    appli = Application() 
    appli.mainloop()
    et voici mtnt ce que ca donne avec la frame:



    Merci de votre aide

    ++

  2. #2
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    ton appli principale n'accede pas a ton image.


    ajoute 'self.'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    self.photo = PhotoImage(file ='thevip.gif')
      espace_image = Canvas(self, width =170, height =170, bg ='blue')
      espace_image.grid(row=3 ,columnspan=2, column=0, padx =10, pady =10)
      espace_image.create_image(85, 85, image =self.photo)

    tu comprends un peu ce qui se passe avec self?

  3. #3
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    par ex je me permet d'ajouter que tu as des erreur de syntaxe.... qui pourront te provoquer des erreurs dans de futurs prog

    ex:

    tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bouton=Button(....).grid()
    tu devrais faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bouton=Button(..)
    bouton.grid()
    bon courage

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 74
    Points
    74
    Par défaut
    MERCI MERCI Génial, ca marche


    sinon:
    Corrige moi si j'ai faux.
    Avec le self, on defini un objet qui dépend de SELF.

    bouton=Button(....).grid()[/code]

    tu devrais faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bouton=Button(..)
    bouton.grid()
    bon courage
    Ca c'est pour un peu alléger mon prog... J'ai lu dans un tuto que c'etait couramment utilisé
    Je n'ai jamais eu de problème avec ca. Euh, qu'est ce qui pourrait se passer

  5. #5
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    perso coté self, ca fait peu de temps que j'ai compris a quoi ca sert.

    disons que lorsque l'on définie une variable avec self, elle est accessible par tout élément du programme
    un peu comme si c'était une variable globale, sauf qu'elle est incorporée uniquement lorsque l'on en a besoin. Pas besoin de la déclarer a la racine du prog.

    Concernant, la correction de code, je te conseille un petit tour dans le tuto de g.Swinnen, il y a des explications a ce sujet.
    Bref, c'est vrai que je n'est jamais testé ce que tu fais.

  6. #6
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 74
    Points
    74
    Par défaut
    lol C'est la que j'ai vu la partie 'simplifier'

    Ata, je retrouve la bonne page

    [5min]

    Voila, 8.6 page 100

  7. #7
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    et bien lis la suite page 101.
    compare tes instructions et celle du haut de la page 101.

    c'est là, que c'est Faux.

    A+

  8. #8
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 74
    Points
    74
    Par défaut
    Mince, tu as raison... Je vais vite mofifier mon code...

    Merci pour l'info

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

Discussions similaires

  1. Inserer une image dans une Frame avec Tkinter
    Par Pythonien dans le forum Général Python
    Réponses: 3
    Dernier message: 23/03/2013, 17h37
  2. Réponses: 3
    Dernier message: 24/01/2007, 20h37
  3. [Tkinter]Image dans un Canvas
    Par Slade991 dans le forum Tkinter
    Réponses: 2
    Dernier message: 10/06/2006, 14h42
  4. [Tkinter] image dans une fenetre
    Par THE_VIP dans le forum Tkinter
    Réponses: 3
    Dernier message: 13/05/2006, 08h38
  5. [debutant]image dans une Frame
    Par charaf dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 09/11/2005, 16h35

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