Bonjour,
Je créer une listbox dans une fonction et je souhaite que lorsque l'on clique sur un des éléments de la liste cela appelle une autre fonction en faisant passer différents paramètres, dont l'indice de l'élément sélectionné :
La fonction appelée "selectedItem" est la suivanteCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 fen_Sel_Date=Frame(fensterDate,bg='white',borderwidth=1) fen_Sel_Date.pack(fill=BOTH) champ_label = Label(fen_Sel_Date, text="Choisissez une date et placez les satellites pour la station "+str(detailStation[0])) champ_label.pack() scrollbar = Scrollbar(fen_Sel_Date, orient=VERTICAL) listeDatum=[] print("Remplissage de la liste des dates") for elementDates in DictDates: if listeDatum.count(arrondiDate(elementDates["TIME"]))==0 : #listeDates.insert(END,str(arrondiDate(elementDates["TIME"]))) listeDatum.append(arrondiDate(elementDates["TIME"])) # creation de la listbox boxDates=Listbox(fen_Sel_Date , font=gross_font, yscrollcommand=scrollbar.set) for elementDate in listeDatum: boxDates.insert(END,str(elementDate)) #print(elementDates["TIME"]) boxDates.bind('<ButtonRelease-1>',selectedItem(boxDates.curselection(),listeDatum)) scrollbar.config(command=boxDates.yview) scrollbar.pack(side=RIGHT, fill=Y) boxDates.pack() :
Cette fonction est exécutée lors de la création de la listbox et non quand on clique sur un élément.Code:
1
2
3
4
5 def selectedItem(iSelected,listeDatum2): print("Selection :") print(iSelected) print("Liste :") print(listeDatum2)
Si je fais la modification suivante dans la première fonction :
et celle là dans la seconde :Code:boxDates.bind('<ButtonRelease-1>',selectedItem)
La seconde fonction n'est plus exécutée sans cliquer sur un élément de la liste mais je n'arrive à récupérer ni l'indice sélectionné, ni la liste de la précédente fonction.Code:
1
2
3
4
5
6 def selectedItem(evt): print(evt) # que me retourne evt ? print("Selection :") print(iSelected) print("Liste :") print(listeDatum)
Que faire ? Merci de votre aide.