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

  FORUM HardWare.fr
  Programmation
  Python

  Python et Tkinter/Pmw

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Python et Tkinter/Pmw

n°2259887
molene2
Posté le 08-06-2015 à 16:43:36  profilanswer
 

Bonjour à tous,
Version Python 2.0.0, sous W7 64bits
 
Je cherche à apprendre Python et pour ça j'utilise "Apprendre à programmer avec Python" de G Swinnen.
Je suis arrivé à Pmw, ou il demande de lancer all.py, et là ça coince et je ne m'en sors pas.
Partie concernée du script:
 
import Pmw
DemoVersion.setPmwVersion()
 
class Demo(Pmw.MegaWidget):
 
    def __init__(self, parent=None, **kw):
 
    # Define the megawidget options.
    optiondefs = ()                             <<<<<<<<<< la  
    self.defineoptions(kw, optiondefs)
 
    # Initialise the base class (after defining the options).
        Pmw.MegaWidget.__init__(self, parent)
 
J'ai le message d'erreur suivant :     :??:  
 
optiondefs = (None)
             ^
IndentationError: expected an indented block.
 
C'est embêtant car je n'avance plus à cause de ça.
 
Merci pour votre réponse.
 
CDT, Molene2
 
 
 

mood
Publicité
Posté le 08-06-2015 à 16:43:36  profilanswer
 

n°2259928
rat de com​bat
attention rongeur méchant!
Posté le 08-06-2015 à 23:34:51  profilanswer
 

Au pif, je ne parle pas le language serpent...
 
En Python les indentations sont très importantes. Et le message d'erreur me fait penser qu'il faut en rajouter une couche, genre
 

Code :
  1. import Pmw
  2. DemoVersion.setPmwVersion()
  3. class Demo(Pmw.MegaWidget):
  4.     def __init__(self, parent=None, **kw):
  5.         # Define the megawidget options.
  6.         optiondefs = ()                             <<<<<<<<<< la 
  7.         self.defineoptions(kw, optiondefs)
  8.         #Initialise the base class (after defining the options).
  9.         Pmw.MegaWidget.__init__(self, parent)


?? Ou alors le nombre d'espaces n'est pas bon (Wiki parle de 8 espaces pour un tab) ou faut mettre des tab à la place?
 
La prochaine fois pense à mettre ton code entre balises [ code][ /code] (sans les espaces).

n°2259938
molene2
Posté le 09-06-2015 à 09:03:20  profilanswer
 

Bonjour,
Merci pour ta réponse rapide ^^  
En effet, je n'avais pas remarqué ces erreurs d'indentation dans le code, à ma décharge je dirais que ce code étant fourni avec Pmw, je ne pige pas pourquoi c'est bug ... Enfin... j'ai modifié tout ça et c'est nettement mieux.
 
Donc merci encore, Molene2

n°2259993
molene2
Posté le 09-06-2015 à 17:20:10  profilanswer
 

Salut,
(Petite correction pour mon 1er post, Python 3.4 et pas 2.0.0)
 
Bon, décidément j'ai un problème avec Pmw, cette fois j'essaye un script toujours par G Swinnen et je coince sur deux lignes.
 
fen = Pmw.initialise() & combo = Pmw.ComboBox(fen, labelpos = NW,.....)
 
Erreur : Undefined variable from import : initialise
                                                    : ComboBox
 

Code :
  1. rom tkinter import *
  2. import Pmw
  3. def changeCoul(col):
  4.     fen.configure(background = col)
  5.    
  6. def changeLabel():
  7.     lab.configure(text = combo.get())
  8.    
  9. couleurs = ('navy', 'royal blue', 'steelblue1', 'cadet blue',
  10.             'lawn green', 'forest green', 'dark red',
  11.             'grey80','grey60', 'grey40', 'grey20')
  12. fen = Pmw.initialise()
  13. bou = Button(fen, text ="Test", command =changeLabel)
  14. bou.grid(row =1, column =0, padx =8, pady =6)
  15. lab = Label(fen, text ='néant', bg ='ivory')
  16. lab.grid(row =1, column =1, padx =8)
  17. Je travaille avec Eclipse & Pydev
  18. combo = Pmw.ComboBox(fen, labelpos = NW,
  19.                      label_text = 'Choisissez la couleur :',
  20.                      scrolledlist_items = couleurs,
  21.                      listheight = 150,
  22.                      selectioncommand = changeCoul)
  23. combo.grid(row =2, columnspan =2, padx =10, pady =10)
  24. fen.mainloop()


 
Je n'y comprends plus rien, ai-je mal installé Pmw?
 
Enfin, merci si une bonne âme passais par là avec une suggestion

n°2260007
molene2
Posté le 09-06-2015 à 18:09:25  profilanswer
 

Oups
Je viens de me rendre compte que j'ai merdouillé,  
01 rom  >>> from (erreur copier coller)
 
20 Je travaille avec Eclipse & Pydev > ne fait évidement partie du script
 
Désolé, je ferai mieux le prochaine fois. :whistle:

n°2260057
molene2
Posté le 10-06-2015 à 11:44:48  profilanswer
 

Bonjour,
 
Je reviens sur ce post, en fait si je lance mon script à partir de Pmw_2_0_0/demo et si je rajoute ces 2 lignes ;

Code :
  1. import sys
  2. sys.path[:0] = ['../../..']


Ca fonctionne, mais si je le lance à partir de Eclipse,Pydev ou d'un autre répertoire j'ai ce message:
 
Traceback (most recent call last):
  File "C:\Python34\Projet\src\BoutonDeroulant.py", line 8, in <module>
    import Pmw
ImportError: No module named 'Pmw'
 
J'en suis donc sur une probable mauvaise installation de Pmw, j'ai pris la version 2.0.0 que j'ai dezippé dans c:\Python34\Pmw_2_0_0
 
D'autre part, si je renomme le repertoire Pmw_2_0_0 en Pmw, j'ai le message suivant:
 
Traceback (most recent call last):
  File "C:\Python34\Projet\src\BoutonDeroulant.py", line 20, in <module>
    fen = Pmw.initialise()
AttributeError: 'module' object has no attribute 'initialise'
 
Là il trouve Pmw, mais pas attribut initialise.
 
Bref, je tourne en rond et je suis sec.
Merci d'aider un débutant dans la peine...

n°2260096
rat de com​bat
attention rongeur méchant!
Posté le 10-06-2015 à 18:04:57  profilanswer
 

Heu désolé, comment je disais j'y connais rien et je ne vais pas me risquer à raconter n'importe quoi... :o

n°2260321
molene2
Posté le 14-06-2015 à 22:59:47  profilanswer
 

bonsoir,
J'ai trouvé la solution à mon problème.
 
Merci pour votre aide

n°2264462
pasdem2
Posté le 15-08-2015 à 15:12:54  profilanswer
 

molene2 a écrit :

bonsoir,
J'ai trouvé la solution à mon problème.
 
Merci pour votre aide


 
Je rencontre le même problème.
Quelle était la solution ?
Merci pour votre aide


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

  Python et Tkinter/Pmw

 

Sujets relatifs
Évacuation d'une salleAnimation en Python
Python[Python] Tetris, besoin d'aide pour élimination d'une ligne complète
Problème de sortie d'une boucle while en PYTHONCréer un classement en python 2.7
programmation score de tennis python pygameTkinter-Problème pour récupérer les valeurs
[python] 2048 intelligence artificielle 
Plus de sujets relatifs à : Python et Tkinter/Pmw


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