import tkinter as tk
class Application([Link]):
def __init__(self):
super().__init__()
[Link]("Menu Vertical avec Pages")
# Créer un cadre pour le menu
menu_frame = [Link](self)
menu_frame.pack(side="left", fill="y")
# Créer un cadre pour le contenu des pages
[Link] = [Link](self)
[Link](side="right", fill="both", expand=True)
# Ajouter des boutons pour les éléments du menu
btn_menu = [Link](menu_frame, text="Menu", command=lambda:
self.show_frame(MenuPage))
btn_menu.pack(fill="x")
btn_home = [Link](menu_frame, text="Home", command=lambda:
self.show_frame(HomePage))
btn_home.pack(fill="x")
btn_settings = [Link](menu_frame, text="Settings", command=lambda:
self.show_frame(SettingsPage))
btn_settings.pack(fill="x")
# Dictionnaire pour stocker les cadres des pages
[Link] = {}
for F in (MenuPage, HomePage, SettingsPage):
page_name = F.__name__
frame = F(parent=[Link], controller=self)
[Link][page_name] = frame
[Link](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 = [Link][page_class.__name__]
[Link]()
class MenuPage([Link]):
def __init__(self, parent, controller):
super().__init__(parent)
[Link] = controller
label = [Link](self, text="C'est la page du Menu")
[Link](side="top", fill="x", pady=10)
class HomePage([Link]):
def __init__(self, parent, controller):
super().__init__(parent)
[Link] = controller
label = [Link](self, text="C'est la page d'Accueil")
[Link](side="top", fill="x", pady=10)
class SettingsPage([Link]):
def __init__(self, parent, controller):
super().__init__(parent)
[Link] = controller
label = [Link](self, text="C'est la page des Paramètres")
[Link](side="top", fill="x", pady=10)
if __name__ == "__main__":
app = Application()
[Link]()