Partage
  • Partager sur Facebook
  • Partager sur Twitter

AttributeError: 'NoneType' object has no attribute

    20 avril 2016 à 18:23:55

    Voici mon probleme.

    from Tkinter import *
    
    nb = 7
    
    def Tirer():
        L.config(text= nb - 1)
        
        
    Page = Tk()
    
    L = Label(Page, text= nb).pack()
    B = Button(Page, text="Tirer !",command= Tirer).pack()
    
    Page.mainloop()

    A chaque fois que j'appuie sur le boutton "Tirer".

    Cela me rapporte:

    Exception in Tkinter callback
    Traceback (most recent call last):
      File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__
        return self.func(*args)
      File "Test.py", line 6, in Tirer
        L.config(text= nb - 1)
    AttributeError: 'NoneType' object has no attribute 'config'

    Malegrée mes recherches je n'ai pas sus résoudre le probleme de

    AttributeError: 'NoneType' object has no attribute 'config'

    Pouvez-vous m'éclairé sur mon probleme.... Merci !

    • Partager sur Facebook
    • Partager sur Twitter
      20 avril 2016 à 18:29:29

      Bonjour, ta ligne 11 ne renvoi rien donc ton L contient None. Il faut le changer ainsi:

      L = Label(Page, text= nb)
      L.pack()

      Attention tu ne décrémentes pas nb donc quand tu vas tirer la première fois sa affichera 6 mais les autres fois aussi.

      • Partager sur Facebook
      • Partager sur Twitter
        21 avril 2016 à 18:20:33

        Comment je pourrais décrémenter nb de manière efficace ?(avec le programme que je t'ai donné) ? : /
        • Partager sur Facebook
        • Partager sur Twitter
          21 avril 2016 à 18:32:29

          Je sais pas si on peut appeller ca une manière efficace mais tu peut utiliser une variable globale

          from tkinter import *
          
          nb = 7
          
          def Tirer():
              global nb
              L.config(text= nb - 1)
              nb-=1
          
          
          Page = Tk()
          
          L = Label(Page, text= nb)
          L.pack()
          B = Button(Page, text="Tirer !",command= Tirer).pack()
          
          Page.mainloop()

          Je pense que ca serait mieux de mettre nb en paramètre de tirer et de décrémenter nb dans le corps du programme mais comme je suis une brelle pour tout ce qui est graphique je vois que ca.

          • Partager sur Facebook
          • Partager sur Twitter
            21 avril 2016 à 18:50:58

            Un GRAND merci à toi lewisbm ! Ca marche ! Même si je n'ai pas encore vu les "variables globale"

            Sens doute pour ça que je n'ai surement pas sus resoudre le probleme... :euh:

            • Partager sur Facebook
            • Partager sur Twitter

            AttributeError: 'NoneType' object has no attribute

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown