44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
import tkinter as tk
|
|
from tkinter import ttk
|
|
|
|
|
|
class App(tk.Tk):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.title("Navegacao entre Modulos")
|
|
self.geometry("900x550")
|
|
|
|
sidebar = ttk.Frame(self, padding=10)
|
|
sidebar.pack(side="left", fill="y")
|
|
|
|
self.content = ttk.Frame(self, padding=16)
|
|
self.content.pack(side="left", fill="both", expand=True)
|
|
|
|
self.frames = {
|
|
"Modulo 1": self._build_page("Modulo 1", "Conteudo do modulo 1"),
|
|
"Modulo 2": self._build_page("Modulo 2", "Conteudo do modulo 2"),
|
|
"Modulo 3": self._build_page("Modulo 3", "Conteudo do modulo 3"),
|
|
}
|
|
|
|
for nome in self.frames:
|
|
ttk.Button(sidebar, text=nome, command=lambda n=nome: self.show_page(n)).pack(
|
|
fill="x", pady=4
|
|
)
|
|
|
|
self.show_page("Modulo 1")
|
|
|
|
def _build_page(self, titulo: str, texto: str) -> ttk.Frame:
|
|
frame = ttk.Frame(self.content)
|
|
ttk.Label(frame, text=titulo, font=("Segoe UI", 16, "bold")).pack(anchor="w")
|
|
ttk.Label(frame, text=texto).pack(anchor="w", pady=(10, 0))
|
|
return frame
|
|
|
|
def show_page(self, nome: str):
|
|
for frame in self.frames.values():
|
|
frame.pack_forget()
|
|
self.frames[nome].pack(fill="both", expand=True)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
App().mainloop()
|