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 :

import ou from [Fait]


Sujet :

Tkinter Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut import ou from
    Voici un exemple (trouvé sur ce site) et qui fonctionne très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from PIL import Image, ImageTk 
    import  Tkinter as Tk
    root = Tk.Tk() 
    
    monimage = Image.open("retour2.png")    
    photo = ImageTk.PhotoImage(monimage)  
    
    label = Tk.Label(image=photo)    
    label.image = photo 			
    label.pack()
    
    root.mainloop()
    J'ai besoin cependant de modifié la ligne en rouge par from Tkinter import *pour l'adapter à mon script. Mais là tout se gâte...

    Voici les modifications:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from PIL import Image, ImageTk 
    from Tkinter import *
    root = Tk() 
    
    monimage = Image.open("retour2.png")    
    photo = ImageTk.PhotoImage(monimage)  
    
    label = Label(image=photo)    
    label.image = photo 			
    label.pack()
    
    root.mainloop()
    et voici le message d'erreur que j'obtiens :
    Traceback (most recent call last):
    File "image avec Pil 2.py", line 6, in ?
    monimage = Image.open("retour2.png")
    AttributeError: class Image has no attribute 'open'


    Je ne comprends pas et d'avance remercie tous ceux qui voudront bien m'aider.

  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    C'est qu'à priori Tkinter possède aussi un module Image (d'où l'une des raisons de ne jamais faire de from ... import * )

    essaie en inversant les 2 imports
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from Tkinter import *
    from PIL import Image, ImageTk
    par contre, si tu es sous windows avec la version de pil1.1.6b2, fais attention, il y a l'air de manquer le fichier _imagingtk.pyd dans la distribution (donc installer avant pil 1.1.5 pour que ce fichier soit présent)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut
    Merci d'avoir répondu.
    J'ai effectivement un problème d'import et c'était la ligne :
    from Tix import*
    Je modifie donc cet import ainsi que mes fonctions Ballon() :
    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 *
    from PIL import Image, ImageTk 
    import Tix
     
    root = Tk() 
     
    monimage = Image.open("retour2.png")    
    photo = ImageTk.PhotoImage(monimage)  
     
    label = Label(image=photo)    
    label.image = photo 			
    label.pack()
     
    b1=Button(root,text='Cliquer !').pack()
    bulle1 = Tix.Balloon() 
    bulle1.bind_widget(b1, msg='Bonjour')
     
    root.mainloop()
    ...et la j'obtiens le message d'erreur suivant :

    Traceback (most recent call last):
    File "image avec Pil 2.py", line 17, in ?
    bulle1 = Tix.Balloon()
    File "C:\Python24\lib\lib-tk\Tix.py", line 526, in __init__
    TixWidget.__init__(self, master, 'tixBalloon', static, cnf, kw)
    File "C:\Python24\lib\lib-tk\Tix.py", line 307, in __init__
    self.tk.call(widgetName, self._w, *extra)
    _tkinter.TclError: invalid command name "tixBalloon"

  4. #4
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Si tu utilises Tix, ta fenêtre princiaple doit être déclarée depuis Tix

    =>

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut
    Je modifie mon code :
    from Tkinter import *
    from PIL import Image, ImageTk
    import Tix

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    root = Tix.Tk() 
     
    monimage = Image.open("retour2.png")    
    photo = ImageTk.PhotoImage(monimage)  
     
    label = Label(image=photo)    
    label.image = photo 			
    label.pack()
     
    b1=Button(root,text='Cliquer !').pack()
    bulle1 = Tix.Balloon() 
    bulle1.bind_widget(b1, msg='Bonjour')
     
    root.mainloop()
    et là j'obtiens le message :

    Traceback (most recent call last):
    File "image avec Pil 2.py", line 18, in ?
    bulle1.bind_widget(b1, msg='Bonjour')
    File "C:\Python24\lib\lib-tk\Tix.py", line 535, in bind_widget
    self.tk.call(self._w, 'bind', widget._w, *self._options(cnf, kw))
    AttributeError: 'NoneType' object has no attribute '_w'

  6. #6
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    http://python.developpez.com/faq/?pa...AttributeError

    (comme quoi on trouve tout ou presque dans la FAQ)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut
    ...sur ce coup je ne suis pas pardonnable car c'est un problème que j'ai maintes fois rencontré. A tel point que je ne devrais plus utiliser cette manière de faire.
    Grand merci en tout pour ton aide. Tout fonctionne. Je vais maintenant intégrer cela dans mon script principal.


  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut
    Je confirme...Tout fonctionne.


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

Discussions similaires

  1. Import table from a server
    Par pnoel-bi dans le forum OTIC (ex-Genio)
    Réponses: 2
    Dernier message: 30/07/2012, 10h53
  2. Paramètres Data Import/Export from Workspace
    Par Billythecrack dans le forum Simulink
    Réponses: 2
    Dernier message: 24/09/2010, 06h19
  3. from xml.marshal import generic
    Par Gldev_comp dans le forum Général Python
    Réponses: 2
    Dernier message: 10/07/2008, 16h40
  4. import / copy folder from file system
    Par chichone dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 13/06/2008, 16h10
  5. [SQL-SERVER]Importing data from external sources
    Par poosh dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/04/2006, 13h25

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