Listbox recuperation de variable
Résolu/Fermé
eXe76000
Messages postés
4
Date d'inscription
lundi 26 février 2024
Statut
Membre
Dernière intervention
26 février 2024
-
26 févr. 2024 à 01:51
XCode - 26 févr. 2024 à 15:26
XCode - 26 févr. 2024 à 15:26
A voir également:
- Listbox recuperation de variable
- Convertisseur récupération de texte - Guide
- Recuperation video youtube - Guide
- Impossible de récupérer mon compte gmail - Guide
- Récupération message whatsapp - Guide
- Recuperation de données - Guide
4 réponses
yg_be
Messages postés
23522
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 avril 2025
Ambassadeur
1 578
26 févr. 2024 à 09:13
26 févr. 2024 à 09:13
bonjour,
label_c.get(tk.ACTIVE)
eXe76000
Messages postés
4
Date d'inscription
lundi 26 février 2024
Statut
Membre
Dernière intervention
26 février 2024
Modifié le 26 févr. 2024 à 10:55
Modifié le 26 févr. 2024 à 10:55
Merci beaucoup c'etait bête effectivement... des fois faut pas voir plus loin que le bout de son nez je commencais a m'arracher les cheveux
Salut.
Le souci avec tk.ACTIVE est que même s'il n'y a pas eu de sélection de la part de l'utilisateur, est qu'il y en a une par défaut, la première.
Un simple exemple de comment j'aurais fait.
import tkinter as tk TITLES = ( 'Madame', 'Mademoiselle', 'Monsieur', ) def show(listbox, label): try: index = listbox.curselection()[0] except IndexError: # Aucun item sélectionné return values = listbox.getvar(listbox.cget('listvariable')) label['text'] = values[index] window = tk.Tk() title_var = tk.StringVar(value=TITLES) title_box = tk.Listbox( window, height=len(TITLES), bg='white', fg='blue', selectbackground='blue', selectforeground='white', selectmode=tk.SINGLE, listvariable=title_var, ) title_box.grid() # for k, v in title_box.config().items(): # print(k, v) def listbox_scroll(evt, listbox): try: index = title_box.curselection()[0] listbox.selection_clear(index) except IndexError: index = 0 else: if index < listbox.size() - 1 and (evt.keysym == 'Down' or evt.num == 5): index += 1 elif index > 0 and (evt.keysym == 'Up' or evt.num == 4): index -= 1 listbox.selection_set(index) result_label = tk.Label(window) result_label.grid() validate_button = tk.Button( window, text='Afficher', command=lambda: show(title_box, result_label), ) validate_button.grid() title_box.bind('<Up>', lambda evt: listbox_scroll(evt, title_box)) title_box.bind('<Down>', lambda evt: listbox_scroll(evt, title_box)) # Windows scroll title_box.bind("<MouseWheel>", lambda evt: listbox_scroll(evt, title_box)) # Unix scroll title_box.bind('<Button-4>', lambda evt: listbox_scroll(evt, title_box)) title_box.bind('<Button-5>', lambda evt: listbox_scroll(evt, title_box)) window.mainloop()
Je pense tout de même qu'un menu (Menubutton et Menu) serait bien mieux adapté pour faire cela, mais plus complexe à mettre en œuvre.
yg_be
Messages postés
23522
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 avril 2025
1 578
26 févr. 2024 à 14:10
26 févr. 2024 à 14:10
plus simple,
["","Madame", "Monsieur"]
Ou une comboBox avec ttk.
import tkinter as tk from tkinter import ttk def afficheChoix(): print(comboBox.get()) root = tk.Tk() root.geometry('300x200') labelChoix = tk.Label(root, text = "Veuillez faire un choix !") labelChoix.pack() civilite=["Monsieur", "Madame", "Maitre", "Docteur", "Docteure"] comboBox = ttk.Combobox(root, values=civilite) comboBox.current(0) comboBox.pack() bouton = tk.Button(root, text="Choix", command=afficheChoix) bouton.pack() root.mainloop()
Diablo76
Messages postés
217
Date d'inscription
vendredi 25 novembre 2022
Statut
Membre
Dernière intervention
7 mars 2025
55
26 févr. 2024 à 11:34
26 févr. 2024 à 11:34
Ouais....
Tu aurais pu prendre le temps et la peine de répondre à l'intervenant qui t'a aidé sur l'autre forum avant de poster ici.