Bonjour à tous,

Je rencontre une difficulté sur une listbox qui ne semble plus être reconnue quand je veux récupérer l'index ou l'utilisateur a cliqué.
J'ai une première listbox qui contient des clients qui se trouve dans le corps principal du programme. Dés que l'utilisateur clique sur un client, je pars dans une fonction qui ouvre une nouvelle fenêtre ou s'affiche 2 nouvelles listbox l'une avec les noms et l'autre les ip des matériels actifs de ce clients. Dés que l'utilisateur clique sur une IP je pars sur une nouvelle fonction qui est chargée de récupérer cette ip pour aller se connecter à l'actif.
Le souci, c'est qu'au clic sur l'ip, un message d'erreur dit que la liste n'est pas reconnue. Donc, je pense que la listbox ne passe pas d'une fonction vers une autre. J'essaie de comprendre pourquoi car ça fonctionne depuis le corps du programme.

Je mets le code ci-dessous, épuré pour qu'il puisse fonctionner et reproduire le problème. Dans mon code de base mes clients et mes actifs sont dans des fichiers qui me permettent de remplir les listes.

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
 
from tkinter import *
 
def selection_client(event):  #Fonction de selection du client et ouverture de son fichier materiel
     ###############################
     # ouverture fenetre materiel  #
     ###############################
     fenetre_materiel=Toplevel(master=fenetre)
     #########################################
     # recuperation de l'index dans la liste #
     #########################################
     choix = liste_clients.curselection()
     nom_client = liste_clients.get(choix)
     label_cli=Label(fenetre_materiel, text="Client "+nom_client, fg="blue",font="Helvetica 20 bold")
     label_cli.grid()
 
     #############################################
     # Mise en listbox des nom des materiels     #
     #############################################
     liste_nom_materiel=Listbox(fenetre_materiel)
     liste_nom_materiel.insert(0, "aaaa")
     liste_nom_materiel.insert(1, "bbbb")
     liste_nom_materiel.insert(2, "cccc")
     liste_nom_materiel.insert(3, "dddd")
     liste_nom_materiel.insert(4, "eeee")
     liste_nom_materiel.insert(5, "ffff")
     liste_nom_materiel.grid(row=1,column=0, sticky=W)
 
     ####################################################################################################################################################
     # Mise en listbox des IP des materiels parceque je n'ai pas encore compris comment faire tout dans une seule liste ou on peut extraire que l'ip    #
     ####################################################################################################################################################
     liste_ip_materiel=Listbox(fenetre_materiel)
     liste_ip_materiel.insert(0, "192.168.1.1")
     liste_ip_materiel.insert(1, "192.168.1.2")
     liste_ip_materiel.insert(2, "192.168.1.3")
     liste_ip_materiel.insert(3, "192.168.1.4")
     liste_ip_materiel.insert(4, "192.168.1.5")
     liste_ip_materiel.insert(5, "192.168.1.6")
     liste_ip_materiel.grid(row=1,column=2, sticky=W)
 
     ###################################
     # Clic sur le materiel choisis    #
     ###################################
     bouton_fermer = Button(fenetre_materiel, text = "Fermer", font="Helvetica 15", pady=10, command = fenetre.destroy)
     bouton_fermer.grid(row=24, column=3)
     liste_ip_materiel.bind('<ButtonRelease-1>', selection_materiel)
 
 
def selection_materiel(event):  #Fonction de la selection de l'adresse IP du materiel
          choix = liste_ip_materiel.curselection()
          adresse_ip = liste_ip_clients.get(choix)
          print (adresse_ip)
 
 
##############################################
#                                            #
#    DEBUT PROGRAMME                         #
#                                            #
##############################################
 
#############################################
#  Creation fenetre principale              #
#############################################
fenetre = Tk()
label = Label(fenetre, text="Gestion clients")
label.grid()
bouton_quitter = Button(fenetre, text = "Quitter", command = fenetre.destroy)
bouton_quitter.grid()
 
 
###################################
# Mise en listbox des clients     #
###################################
liste_clients = Listbox(fenetre)
liste_clients.insert(0, "Toto")
liste_clients.insert(1, "Titi")
liste_clients.insert(2, "Tutu")
liste_clients.insert(3, "Tata")
liste_clients.grid()
 
 
###################################
# Clic sur le client choisis      #
###################################
liste_clients.bind('<ButtonRelease-1>', selection_client)
 
fenetre.mainloop()
Merci