Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Tkinter] Envoyer valeur avec un bouton

Sujet résolu
    19 août 2019 à 13:30:18

    Bonjour,

    Je réalise en ce moment une application pour enregistrer les activités de chaque journée.

    Le code génère un calendrier, où chaque jour est un bouton.

    Je bloque, je ne sais pas comment différencier l'appuis sur chaque bouton.

    		for i in range(0, len(self.c)):
    			self.sub_buttonlist = []
    			
    			for i2 in range(0, len(self.c[i])):
    				
    				if self.c[i][i2] == 0:  # Si le jour est absent , itération de la colonne.
    					self.col_numb += 1
    					if self.col_numb % 8 == 0:  # A la huitième colonne, itération de la ligne.
    						self.row_numb += 1
    						self.col_numb = 1  # Nouvelle ligne : Le numéro de colonne repasse à 1.
    				else:  # Création des jours proprement dits :
    					date = str(self.c[i][i2]) + "_" + str(self.m) + "_" + str(self.y)
    					if date in self.dico_jour:
    						couleur = "grey"
    					else:
    						couleur = "white"
    						
    					self.button = Button(self.subframe2, text=str(self.c[i][i2]), relief='flat', bd=1, bg=couleur,
    										 padx=10, pady=10)
    					self.button.grid(row=self.row_numb, column=self.col_numb, sticky='nsew')
    					self.sub_buttonlist.append(self.button)
    					self.sub_buttonlist.append(str(self.c[i][i2]))
    					self.buttonlist.append(self.sub_buttonlist)
    					self.sub_buttonlist = []
    					# Le bouton du jour courant est bleu :
    					if self.c[i][i2] == self.d and self.m == localtime()[1] and self.y == localtime()[0]:
    						self.button.configure(bg='#357AB7', fg='white')
    						self.row_curweek = self.row_numb  # Récupération de la rangée de la semaine en cours
    					self.col_numb += 1
    					if self.col_numb % 8 == 0:
    						self.row_numb += 1
    						self.col_numb = 1
    					self.last_row = self.row_numb  # Valeur de la dernière ligne
    
    
    		
    		for i in range(0, len(self.buttonlist)):
    			# configuration de la commande de chaque bouton :
    			self.d = int(self.buttonlist[i][0]['text'])
    			self.buttonlist[i][0]['command'] = self.test
    
    	def test(self):
    		pass
    	

    Voila, les deux première boucles fabriquent les jours, et la dernière configure chaque bouton.

    Il fraudais que lors de l’exécution de la fonction test, la fonction sache quel bouton à été cliqué.

    C'est probablement quelque chose de basique, mais là, même après quelques recherches, j'avoue être bloqué.

    En vous remerciant d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      19 août 2019 à 15:12:40

      NathanMart a écrit:

      Je bloque, je ne sais pas comment différencier l'appuis sur chaque bouton.

      [...]

      Il fraudais que lors de l’exécution de la fonction test, la fonction sache quel bouton à été cliqué.


      Pas lu l'intégralité de votre code mais je pense avoir compris votre problème. Peut-être que De quel bouton vient le clic? répond à votre problème.

      Sinon, donnez votre code complet et exécutable (sinon c'est très difficile de donner une réponse appropriée).

      • Partager sur Facebook
      • Partager sur Twitter
        19 août 2019 à 18:37:58

        PascalOrtiz a écrit:

        NathanMart a écrit:

        Je bloque, je ne sais pas comment différencier l'appuis sur chaque bouton.

        [...]

        Il fraudais que lors de l’exécution de la fonction test, la fonction sache quel bouton à été cliqué.


        Pas lu l'intégralité de votre code mais je pense avoir compris votre problème. Peut-être que De quel bouton vient le clic? répond à votre problème.

        Sinon, donnez votre code complet et exécutable (sinon c'est très difficile de donner une réponse appropriée).


        Oui voila, c'est exactement ça.

        Merci

        • Partager sur Facebook
        • Partager sur Twitter

        [Tkinter] Envoyer valeur avec un bouton

        × 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