Réaliser un menu tkinter

Bonsoir,

pour me faciliter la levée d'exceptions inutiles dans un convertisseur de températures, je voudrais créer un menu tkinter (widget listbox) et récupérer le choix de l'utilisateur (sinon autant peigner la girafe en brosse).
Voilà le code récupéré sur le net mais je suis incapable de le maîtriser et de l'adapter à mon problème?
from tkinter import *

def updateLabel(event=None):
    "Callback quand sélection d'un élément de ListBox."
    line = lbx.curselection()[0]
    item = lbx.get(line)
    # on affecte la valeur de l'item à la variable :
    selected_item.set(item)


app = Tk()

# on crée une variable StringVar() pour stocker la
# valeur de l'item sélectionné
selected_item = StringVar()

# création listbox
lbx = Listbox(app)
lbx.insert(0, "Riri")
lbx.insert(1, "Fifi")
lbx.insert(2, "Loulou")
lbx.bind("<<ListboxSelect>>", updateLabel)
lbx.select_set(0)
lbx.grid(row=0, column=0)

# label qui affiche l'item sélectionné
# on utilise une option textvariable pour
# le lier à l'objet StringVar qu'on a défini auparavant
lbl = Label(app, textvariable=selected_item)
lbl.grid(row=1, column=0)


Merci d'avance de vos éventuelles idées et remarques,

bien amicalement,

F.D.

Réponses

  • Bonjour ,

    l'exemple que tu tu as trouvé concerne une liste de choix mais pas un menu .
    Voilà un exemple de menu :
    #--- Fonction menu  ---------------------------------------
    #---                                                                         -
    #---      exemple basique                                        -
    #-----------------------------------------------------------------
    
    from tkinter import Tk, Frame, Menu
    
    class Example(Frame):
      
        def __init__(self):
            super().__init__()            
            self.initUI()
            
        def initUI(self):      
            self.master.title("Simple menu")        
            menubar = Menu(self.master)
            self.master.config(menu=menubar)
            
            fileMenu = Menu(menubar)
            fileMenu.add_command(label="choix_1", command=self.choix_1)
            fileMenu.add_command(label="choix_2", command=self.choix_2)
            fileMenu.add_command(label="choix_3", command=self.choix_3)
            fileMenu.add_command(label="Exit", command=self.onExit)
            menubar.add_cascade(label="menu_1", menu=fileMenu)
            
        def onExit(self):        
            self.quit()
            
        def choix_1 (self) : print ("choix 1")
        def choix_2 (self) : print ("choix 2")
        def choix_3 (self) : print ("choix 3")
        
    def main():  
        root = Tk()
        root.geometry("250x150+300+300")
        app = Example()
        root.mainloop()  
    
    if __name__ == '__main__':
        main()
    

    [Sans indentation, python c'est du pipo ! AD]
  • Merci beaucoup pour cette réponse, je vais m'y pencher dès que possible,

    merci encore

    F.D.
Connectez-vous ou Inscrivez-vous pour répondre.