pets/visao/frames/frame_inicio.py

35 lines
1.4 KiB
Python

import tkinter as tk
class FrameInicio(tk.Frame):
def __init__(self, master=None, bd=None):
super().__init__(master, bg="#1e1e1e")
self.bd = bd
self._atualizar_dados()
self._criar_layout()
def _atualizar_dados(self):
total_pessoas = len(self.bd.pessoas.listar_todos()) if self.bd else 0
total_pets = len(self.bd.pets.listar_todos()) if self.bd else 0
total_adocoes = len(self.bd.adocoes.listar_todos()) if self.bd else 0
self.caixas_info = [
{"titulo": "Pessoas", "quantidade": total_pessoas, "cor": "#ff9966"},
{"titulo": "Pets", "quantidade": total_pets, "cor": "#66c2ff"},
{"titulo": "Adoções", "quantidade": total_adocoes, "cor": "#99e699"},
]
def _criar_layout(self):
container = tk.Frame(self, bg="#1e1e1e")
container.pack(pady=40, padx=50, fill="x")
for caixa in self.caixas_info:
frame = tk.Frame(container, bg=caixa["cor"], width=200, height=120)
frame.pack(side="left", expand=True, padx=10, pady=10, fill="both")
titulo = tk.Label(frame, text=caixa["titulo"], font=("Arial", 16, "bold"), bg=caixa["cor"], fg="white")
titulo.pack(pady=(20, 5))
valor = tk.Label(frame, text=str(caixa["quantidade"]), font=("Arial", 24), bg=caixa["cor"], fg="white")
valor.pack()