Bonjour,

J'ai crée une fenêtre qui par une liste déroulante me choisi une agence (ville), cela m'ouvre une autre fenêtre ou je trouve chaque techniciens lié a cette agence, pour chaque techniciens, j'ai son nom et un bouton, j'ai fais une boucle et il me crée ce bouton et ce label pour chaque techniciens selon la ville choisi.
Ca fonctionne, par contre lorsque j'appui sur un des bouton, je veut lancer une fonction avec en paramètre son nom, comment je récupère son nom ?
Je tente de créer les bouton avec un nom, exemple : toto(aaa) = button..... pour pouvoir intérargir
aaa étant la variable qui compte le nb de techniciens.

Bien sûr ne fonctionne pas, je vois pas comment faire !


La partir du code qui pose problème :
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
41
42
43
44
45
46
#   FONCTION LISTE DEROULANTE RECHERCHE PAR AGENCE_______________________________________________________________________
def foncBtLstDeroul2(event):
    """     Récupère la valeur choisi de la liste déroulante : (par agence)
    et ouvre une nouvelle fenêtre avec les noms et prénoms """
    lstNomPrenom = []
    global varChoix3Liste
    varChoix3Liste=3                                    #   Pour définir si la recherche viens du nom, du tel ou de l'agence, (ici : agence) dans la liste déroulante
    a = objListDeroulAgen.get ()                    #   Recup du choix de la liste déroulante
    #   Vidage des champs
    objListDeroulNom.delete(0, END)  #vider le dernier choix au niveau de la liste déroulante
    objListDeroulTel.delete(0, END)  #vider le dernier choix au niveau de la liste déroulante
    #   Récupération de la liste des noms et prénoms
    for e in lstClass:
        if a == e.agence:         # Si on le trouve
            lstNomPrenom.append(e.nom + " " + e.prenom)
    #   trie de la liste
        lstNomPrenom.sort ()
    #   Création de la nouvelle fenêtre de la liste des noms par agence
    fenNomPrenom = Toplevel ()
    fenNomPrenom.title ("Liste des techniciens de l'agence " + a)
    fenNomPrenom.configure (bg=varCoulPrinc)
    fenNomPrenom.geometry ('300x380')
    #   Création frame
    objFrameAg = LabelFrame (fenNomPrenom, text="Résultat", bg=varCoulPrinc)
    objFrameAg.pack (fill="both", expand="yes", padx=5, pady=5)  # fill both : extension a yes donc both sinon que sur x ou y
    #   Création des labels
    aaa=0       #   Pour incrémentation des lignes (une ligne par techs)
    for b in range(len(lstNomPrenom)):         #   Récup du nb de techs par agence
 
 
        #   Création labels
        Button (objFrameAg, image=PHOTOBt2, bg = varCoulPrinc, command=foncAgenVersTech).grid(row=aaa, column=0, padx = (5,0))  # faire fonction avec un paramètre le nom du tech pour revenir sur sa fiche
        Label (objFrameAg, bg = varCoulPrinc, text="  " + lstNomPrenom[aaa]).grid(row=aaa, column=1)
 
 
 
 
        aaa += 1
    #   Création bouton externe
    bouSupAg = Button (fenNomPrenom, image=PHOTO4, bg=varCoulPrinc, command=fenNomPrenom.destroy)
    bouSupAg.pack(side=BOTTOM)
    #   Centrage fenêtre
    from Fonctions.FoncCentreEcran import centreFenetre
    centreFenetre (fenNomPrenom)
    #   Réception d'événements pour fenMsgBox
    fenNomPrenom.mainloop()

Cette fonction est lancé via une liste déroulante ou on choisi la ville.