0% ont trouvé ce document utile (0 vote)
32 vues2 pages

Interface Tkinter avec Menu Vertical

Le document présente une application Tkinter avec un menu vertical et plusieurs pages. Il inclut des classes pour gérer les différentes pages : Menu, Accueil et Paramètres, permettant de naviguer entre elles. L'application démarre sur la page d'accueil par défaut.

Transféré par

shanianomendrazana
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
32 vues2 pages

Interface Tkinter avec Menu Vertical

Le document présente une application Tkinter avec un menu vertical et plusieurs pages. Il inclut des classes pour gérer les différentes pages : Menu, Accueil et Paramètres, permettant de naviguer entre elles. L'application démarre sur la page d'accueil par défaut.

Transféré par

shanianomendrazana
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

import tkinter as tk

class Application(tk.Tk):
def __init__(self):
super().__init__()
self.title("Menu Vertical avec Pages")

# Créer un cadre pour le menu


menu_frame = tk.Frame(self)
menu_frame.pack(side="left", fill="y")

# Créer un cadre pour le contenu des pages


self.container = tk.Frame(self)
self.container.pack(side="right", fill="both", expand=True)

# Ajouter des boutons pour les éléments du menu


btn_menu = tk.Button(menu_frame, text="Menu", command=lambda:
self.show_frame(MenuPage))
btn_menu.pack(fill="x")

btn_home = tk.Button(menu_frame, text="Home", command=lambda:


self.show_frame(HomePage))
btn_home.pack(fill="x")

btn_settings = tk.Button(menu_frame, text="Settings", command=lambda:


self.show_frame(SettingsPage))
btn_settings.pack(fill="x")

# Dictionnaire pour stocker les cadres des pages


self.frames = {}
for F in (MenuPage, HomePage, SettingsPage):
page_name = F.__name__
frame = F(parent=self.container, controller=self)
self.frames[page_name] = frame
frame.grid(row=0, column=0, sticky="nsew")

# Afficher la page d'accueil par défaut


self.show_frame(HomePage)

def show_frame(self, page_class):


'''Afficher une page pour le nom donné'''
frame = self.frames[page_class.__name__]
frame.tkraise()

class MenuPage(tk.Frame):
def __init__(self, parent, controller):
super().__init__(parent)
self.controller = controller
label = tk.Label(self, text="C'est la page du Menu")
label.pack(side="top", fill="x", pady=10)

class HomePage(tk.Frame):
def __init__(self, parent, controller):
super().__init__(parent)
self.controller = controller
label = tk.Label(self, text="C'est la page d'Accueil")
label.pack(side="top", fill="x", pady=10)

class SettingsPage(tk.Frame):
def __init__(self, parent, controller):
super().__init__(parent)
self.controller = controller
label = tk.Label(self, text="C'est la page des Paramètres")
label.pack(side="top", fill="x", pady=10)

if __name__ == "__main__":
app = Application()
app.mainloop()

Vous aimerez peut-être aussi