Organisation des interfaces avec Frame
Un Frame
est un conteneur qui permet de regrouper plusieurs widgets. Cela facilite :
- la disposition (layout) de l’interface
- la séparation logique des différentes sections
Voici un exemple simple, deux Frame
, haut et bas:
import tkinter as tk
root = tk.Tk()
root.title("Exemple avec Frame")
# Créer deux cadres
top_frame = tk.Frame(root, bg="lightblue")
bottom_frame = tk.Frame(root, bg="lightgreen")
# Placer les cadres
top_frame.pack(fill="both", expand=True)
bottom_frame.pack(fill="both", expand=True)
# Ajouter des widgets dans chaque cadre
tk.Label(top_frame, text="Haut de la fenêtre").pack(pady=10)
tk.Button(bottom_frame, text="Bouton en bas").pack(pady=10)
root.mainloop()
Comme vous pouvez le voir dans le code ci-haut, au lieu d'avoir un seul
conteneur root
, nous avons deux sections distinctes.
Voici un autre exemple, cette fois avec des Frame
orgraniser gauche-droite
pour simuler un menu latéral :
import tkinter as tk
root = tk.Tk()
root.title("Disposition gauche-droite")
left_frame = tk.Frame(root, bg="lightgray", width=150)
right_frame = tk.Frame(root, bg="white")
left_frame.pack(side="left", fill="y")
right_frame.pack(side="right", fill="both", expand=True)
tk.Label(left_frame, text="Menu").pack(pady=5)
tk.Button(right_frame, text="Contenu principal").pack(pady=20)
root.mainloop()