python
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user