Bonjour,
Je souhaite dans un programme enregistrer(dans une liste) des valeurs entrées dans des boites de saisies (donc plusieurs simultanément) lors d'un clic sur un bouton.
J'ai 2n-1 cases à remplir, je les ai donc crée avec une boucle comme ceci:
Je souhaite donc sauvegarder les valeurs rentrées dans une liste. Mais au vu de la construction de la boucle, je n'ai aucune facon d'appeler les 'variables cases' car elle sont propre à la boucle. J'ai essayé plusieurs méthodes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 for i in range(n-1): txt_F=Label(fen, text='F'+str(i+1)) entry_F= Entry(fen) txt_F.grid(row=3+i,column=1) entry_F.grid(row=3+i,column=2) entry_F.bind('<Return>', savevalue_F(i)) txt_P=Label(fen, text='P'+str(i+1)) entry_P= Entry(fen) txt_P.grid(row=3+i,column=3) entry_P.grid(row=3+i,column=4)
Méthode 1
(en faisant la concession de devoir appuyer sur enter à chaque remplissage de case) en introduisant deux fonctions annexes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 def savevalue_F(event,i): F[i]=entry_F.get() def savevalue_P(event,i): P[i]=entry_P.get()
et en incorporant dans le 1er programme la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part entry_F.bind('<Return>', savevalue_F(i))
après la création du entry_F (et de meme pour entry_P)
et avant la boucle la ligne
L=[0 for i in range(n)]
pour pouvoir remplir la liste mais ca ne fonctionne pas...
Méthode 2:
J'ai aussi essayer d'enregistrer l'adresse de chaque case crée dans la boucle en faisant:
L[i]=entry_F (j'imagine qu'il faut bannir l'utilisation du append quand on utilise des fenêtre car d'apres ce que j'ai compris c'est comme si le programme tournait en continu, donc la liste grandirait tout le temps...)
Mais encore une fois ca ne fonctionnait pas.
Méthode 3:
Enfin j'ai essayer de prendre les valeurs directement avec un .get() dans la boucle.
PS:j'ai vu la construction de la méthode bind dans un livre et la fonction appelée contient le paramètre 'event' mais n'est pas utilis dans la fonction ce que je ne comprend pas. je m'en suis inspiré pour mon code sans trop comprendre ce paramètre.
Merci d'avance pour votre aide!
Partager