Partage
  • Partager sur Facebook
  • Partager sur Twitter

Incrémenter variable lors d'une interruption

[Tkinter][python]

Sujet résolu
    29 décembre 2015 à 11:43:19

    Bonjour à tous,

    J'apprend en ce moment le langage python et j'essaye d'implémenter la fonction suivante: 

    Une fenetre qui affiche "bonjour N fois", où N est le nombre de fois où l'on clique sur le bouton 'Bonjour'.

    J'ai pour cela défini une fenêtre, un label, un bouton et une fonction bonjour ainsi:

    from Tkinter import *
    
    def bonjour (event):
        N.configure(N=N+1)
        BJR= 'Bonjour  ' + str(N)  + ' fois'
        label.configure(text=BJR)
    
    
    
    N=0
    fenetre= Tk()
    
    bouton = Button(fenetre,text='Bonjour')
    bouton.bind('<Button-1>',bonjour)
    bouton.pack()
    
    label =Label(fenetre, text='Bonjour 0 fois')
    label.pack()
    fenetre.mainloop()
    

    Cependant, la variable N est définie de manière global et cela entraine une erreur quand on clique sur le bouton. 

    Auriez une solution à proposer? Je vous remercie d'avance,

    Théophile

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      29 décembre 2015 à 18:01:48

      from Tkinter import *
      
      def bonjour ():
          global N
          N += 1
          BJR= 'Bonjour ' + str(N)  + ' fois'
          label['text'] = BJR
      
      N=0 
      
      fenetre= Tk()
       
      bouton = Button(fenetre,text='Bonjour', command=bonjour)
      bouton.pack()
       
      label =Label(fenetre, text='Bonjour 0 fois')
      label.pack()
      
      fenetre.mainloop()

      Quand on débute, on commence par le commencement... Apprendre les bases python, puis le reste vient tout seul !

      Plus propre sans global

      from Tkinter import *
      
      def bonjour ():
          N.set(N.get() + 1)
          BJR= 'Bonjour ' + str(N.get())  + ' fois'
          label['text'] = BJR
      
      fenetre= Tk()
      
      N = IntVar()
       
      bouton = Button(fenetre,text='Bonjour', command=bonjour)
      bouton.pack()
       
      label =Label(fenetre, text='Bonjour 0 fois')
      label.pack()
      
      fenetre.mainloop()



      -
      Edité par Anonyme 29 décembre 2015 à 18:07:09

      • Partager sur Facebook
      • Partager sur Twitter
        30 décembre 2015 à 8:14:23

        Ok merci beaucoup,

        Je cherchai une fonction du type "set".

        Bonne Journée! 

        • Partager sur Facebook
        • Partager sur Twitter

        Incrémenter variable lors d'une interruption

        × 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