Bonjour à tous,
Tout d'abord je vous remercier de l'attention portée à mon problème.
Je précise que je travail sur python2.7 et que je suis un néophyte.
Mon problème est le suivant, je veux créer un nombre "nbf" d'entrée via l'interface Tkinter. Ce nombre sera défini en amont par l'utilisateur. Je n'ai pas trop de problèmes avec cette étape et mes widgets se créent bien automatiquement, comme je le désire, via l'utilisation d'une simple boucle for.
Je souhaite, via l'utilisation d'un bouton, que l'utilisateur puisse lancer une fonction utilisant les informations (texte ou grandeurs numériques) qu'il aura pris le soin d'entrée dans les nbf widgets d'entrée disponibles.
Il me faut donc utiliser widget.get() sur mes différentes entrée, dans une boucle. Seulement, je n'y parviens pas et ai déjà essayé plusieurs méthodes, comme placer les widgets Entry dans une liste, mais rien n'y fait.
Auriez vous une idée de la marche à suivre pour utiliser les informations rentrées par l'utilisateur dans les règles de l'art.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 # /!\ Python 2.7 /!\ from Tkinter import * root = Tk() nbf = 3 #Pour chaque itération (et donc chaque nbf) je créer un widget "Entry" que je place dans la mainloop "root" for i in range(int(nbf)): ent = Entry(root, name='ent'+'%d' % i) ent.grid(column=0, row=i) print(str(ent))#autre méthode en créant les widgets dans une liste (également essayé avec un tableau numpy) """ ent_tab = [] for i in range(int(nbf)): ent_tab.append(Entry(root, name='ent'+'%d' % i).grid(column=0, row=i)) print(etn_tab)
- .ent0
- .ent1
- .ent2
""" def checkcontent(): #Affichier ce que l'utilisateur à entrer dans les 3 champs crées précédements #for j in range(int(nbf)): #print(ent_tab[i].get()) pass #Création d'un bouton btn = Button(root, text="Tracer", command=checkcontent) btn.grid(column=1, row=i+1, sticky=E) root.mainloop()
- [none, none, none]
En vous remerciant par avance.
Cordialement,
Max_Pandaroux
Partager