Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mettre une Spinbox dans un barre Menu

    6 décembre 2024 à 21:09:31

    Bonjour à tous, je suis nouveau sur openclasseroom mais je e débrouille un peut sur python sur python.

    Ce que je voudrait faire c'est, avec tkinter, créé un sous menu (comme accueil sur Excel) et dans ce sous menu mettre une Spinbox, un truc du genre menu.add_spinbox(), ou alors si ce n'est pas possible faire en sorte que si j'appuis sur un bouton du sous menu, le sous menu reste ouvert et ne se repli pas.

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      7 décembre 2024 à 6:50:20

      Salut,

      Tu peux t'inspirer de cet exemple :

      import tkinter as tk
      from tkinter import ttk, messagebox
      
      class sidePanelMenu(tk.Frame):
          def __init__(self, master=None):
              super().__init__(master, bg="white")
              self.master = master
              self.menu_open = False
              self.create_widgets()
              
          def create_widgets(self):
              self.side_panel_frame = tk.Frame(self.master, bg="lightblue", width=50)
              self.side_panel_frame.pack(side="left", fill="y")
              
              self.menu_button = ttk.Button(self.side_panel_frame, text="≡", command=self.toggle_menu, width=3)
              self.menu_button.pack(side="top", pady=10)
              
              self.button1 = ttk.Button(self.side_panel_frame, text="Button 1", command=self.action_button1)
              self.button2 = ttk.Button(self.side_panel_frame, text="Button 2", command=self.action_button2)
              self.button3 = ttk.Button(self.side_panel_frame, text="Button 3", command=self.action_button3)
              self.spin_box = tk.Spinbox(self.side_panel_frame, from_=0, to=100, command=self.on_spin_box_change)
              
          def toggle_menu(self):
              if not self.menu_open:
                  self.spin_box.pack(side="top", pady=5)
                  self.button1.pack(side="top", pady=5)
                  self.button2.pack(side="top", pady=5)
                  self.button3.pack(side="top", pady=5)
                  self.menu_open = True
              else:
                  self.spin_box.pack_forget()
                  self.button1.pack_forget()
                  self.button2.pack_forget()
                  self.button3.pack_forget()
                  self.menu_open = False
          
          def on_spin_box_change(self):
              value = self.spin_box.get()
              print("Value changed to", value)
          
          def action_button1(self):
              print("Button 1")
              messagebox.showinfo("Show Info", "Information")
              
          def action_button2(self):
              print("Button 2")
              
          def action_button3(self):
              print("Button 3")
                  
      root = tk.Tk()
      root.title("Side Menu")
      root.geometry("600x400")
      app = sidePanelMenu(master=root)
      app.pack(fill="both", expand=True)
      root.mainloop()



      • Partager sur Facebook
      • Partager sur Twitter
        7 décembre 2024 à 17:56:32

        En fait mon objectif est de faire un onglet pour zoomer, et il existe déjà un moyen de faire des barre de menus sur tkinter
        • Partager sur Facebook
        • Partager sur Twitter
          7 décembre 2024 à 19:50:56

          L'Inconnu77 a écrit:

          En fait mon objectif est de faire un onglet pour zoomer, et il existe déjà un moyen de faire des barre de menus sur tkinter


          Il n'y a pas de spinbox dans les Menu tcl/tk. Reste à coder quelque chose qui y ressemble ou à s'en passer.
          • Partager sur Facebook
          • Partager sur Twitter
            8 décembre 2024 à 12:34:29

            L'Inconnu77 a écrit:

            En fait mon objectif est de faire un onglet pour zoomer, et il existe déjà un moyen de faire des barre de menus sur tkinter

            Effectivement, d'ou mon exemple, ici une barre latérale mais rien ne t'empèche de t'en inspirer pour une barre horizontale et y intégrer les éléments que tu souhaites



            • Partager sur Facebook
            • Partager sur Twitter

            Mettre une Spinbox dans un barre Menu

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            • Editeur
            • Markdown