Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3241 connectés 

  FORUM HardWare.fr
  Programmation
  Python

   mon script foire je comprend pas pourquoi

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mon script foire je comprend pas pourquoi

n°1860458
siden
Posté le 11-03-2009 à 18:08:02  profilanswer
 

Bonjour à tous,
 
je suis débutant sur python et je dois faire un programme avec interface graphique pour mon stage.
 
Je suis bloqué sur la capture de texte avec la librairie Tkinter
La commande get() pour recevoir le texte inscrit dans un widget EntryField (de Pmw) ne veux pas fonctionner dans le cas de mon programme.
J'ai comparé avec un programme semblable trouvé dans le tuto de Gérard Swinen qui tourne comme il faut mais je ne vois nulle part où je foire.
 
Voici le code :

Code :
  1. # -*- coding:Utf-8 -*-
  2. from Tkinter import *
  3. from math import *
  4. import Pmw
  5. class fenetre(Frame):
  6.     def __init__(self):
  7.         Frame.__init__(self)
  8.         #création des onglets
  9.         notebook=Pmw.NoteBook(parent=Frame.__init__(self))
  10.         notebook.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
  11.         onglet1=notebook.add('Visualisation')
  12.         notebook.tab('Visualisation').focus_set()
  13.         Label(onglet1,text='entrée :').grid(row=0,column=0,padx=3,pady=3)
  14. ##        self.valentre=Entry(onglet1).grid(row=0,column=1,padx=3,pady=3)
  15. ##        Button(onglet1,text='valider',command=self.maj).grid(row=0,column=2,padx=3,pady=3)
  16.         self.valentre=Pmw.EntryField(onglet1,labelpos='e',command=self.maj, label_text='°C').grid(row=0,column=1,padx=3,pady=3)
  17.     def maj(self):
  18.         entre=self.valentre.get()
  19.         Label(onglet1, text=entre).grid(row=1,column=0,adx=3,pady=3,columnspan=2)
  20.         print entre
  21.    
  22. if __name__ == '__main__':
  23.     fenetre().mainloop()


 
lors de l'éxecution j'ai ce message d'erreur :  
 

Code :
  1. File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1417, in __call__
  2.     return self.func(*args)
  3.   File "/usr/lib/python2.5/site-packages/Pmw/Pmw_1_3/lib/PmwEntryField.py", line 191, in _executeCommand
  4.     cmd()
  5.   File "test.py", line 20, in maj
  6.     entre=self.valentre.get()
  7. AttributeError: 'NoneType' object has no attribute 'get'


 
le code en commentaire peux remplacer la ligne qui suit et donne la même erreur.
 
quelqu'un a une idée d'où ca peut venir?

mood
Publicité
Posté le 11-03-2009 à 18:08:02  profilanswer
 

n°1860463
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2009 à 18:19:57  profilanswer
 

siden a écrit :

quelqu'un a une idée d'où ca peut venir?


De Pwm.EntryField.grid qui renvoie None [:glenda]

 

Franchement c'est pas sérieux comme TALC [:petrus75]

Message cité 1 fois
Message édité par masklinn le 11-03-2009 à 18:23:35

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1860469
siden
Posté le 11-03-2009 à 18:38:27  profilanswer
 

masklinn a écrit :


De Pwm.EntryField.grid qui renvoie None [:glenda]  
 
Franchement c'est pas sérieux comme TALC [:petrus75]


TALC ca veut dire quoi?
 
En plus je viens de m'apercevoir que pour Entryfield c'est getvalue() que je dois utiliser...
 
mais ca résoud pas mon problème en remplacant ma ligne avec EntryField par celles en commentaires, des que je met une valeur dans le champ et que je valide ca fait la même chose.
 
Je comprend pas pourquoi il renverrai None
 

Code :
  1. File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1417, in __call__
  2.     return self.func(*args)
  3.   File "/usr/lib/python2.5/site-packages/Pmw/Pmw_1_3/lib/PmwEntryField.py", line 191, in _executeCommand
  4.     cmd()
  5.   File "test.py", line 20, in maj
  6.     entre=self.valentre.get()
  7. AttributeError: 'NoneType' object has no attribute 'get'

n°1860483
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2009 à 19:35:18  profilanswer
 

siden a écrit :


TALC ca veut dire quoi?


Topic À La Con

siden a écrit :

mais ca résoud pas mon problème en remplacant ma ligne avec EntryField par celles en commentaires, des que je met une valeur dans le champ et que je valide ca fait la même chose.


 [:orly2]

 

Relis mon post avec le doigt, que ce soit la ligne commentée ou l'autre tu récupères la sortie d'.grid qui renvoie None [:spamatounet]

guybrush02 a écrit :

Décommente la ligne 16 [:arhendal]


Non mais avec ou sans s'pareil, dans tous les cas il appelle grid sur le machin qu'il vient de créer, et grid renvoie None (enfin ne renvoie rien ce qui en Python est équivalent à renvoyer None), et là paf ça fait des chocapics il colle None dans sa variable :o


Message édité par masklinn le 11-03-2009 à 19:37:05

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1860494
siden
Posté le 11-03-2009 à 19:59:34  profilanswer
 

Yessssss!!!
merci beaucoup t'as mis le doigt sur le prob qui me faisais chier depuis des jours.
 
En fait je pensais que faire  
 
        self.valentre=Entry(onglet1)
        self.valentre.grid(row=0,column=1,padx=3,pady=3)
 
ou bien  
        self.valentre=Entry(onglet1).grid(row=0,column=1,padx=3,pady=3)
 
ça revenait au même...
 
merci beaucoup je vais pouvoir avancer comme il faut maintenant


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

   mon script foire je comprend pas pourquoi

 

Sujets relatifs
Execution d'un .bat dans un script phpidée de la consommation RAM d'un bon script PHP ?
Titre d'un script CGI Perlscript de configuration reseau linux
script pour modifier un xsl:for-each.htaccess : empêcher l'exécution sauvage d'un script
ping en boucle dans script shellScript avec Telnet
Recherche script decoupe image a partir d'une interfaceaide pour coder un petit script
Plus de sujets relatifs à : mon script foire je comprend pas pourquoi


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR