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 suivante
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 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager