Untitled
import tkinter as tk from tkinter import ttk, messagebox class CalculadoraJuros: def __init__(self, root): self.root = root self.root.title("Calculadora de Juros de Parcelas") # Configurações de juros self.juros_config = { 1: 5, 2: 10, 3: 15, 4: 20, 5: 25, 6: 30, 7: 35, 8: 40, 9: 45, 10: 50, 11: 55, 12: 60, 13: 65, 14: 70, 15: 75, 16: 80, 17: 85, 18: 90 } # Interface gráfica self.label_valor = ttk.Label(root, text="Valor Total:") self.label_valor.grid(row=0, column=0, padx=10, pady=10) self.entry_valor = ttk.Entry(root) self.entry_valor.grid(row=0, column=1, padx=10, pady=10) self.label_parcelas = ttk.Label(root, text="Número de Parcelas:") self.label_parcelas.grid(row=1, column=0, padx=10, pady=10) self.entry_parcelas = ttk.Entry(root) self.entry_parcelas.grid(row=1, column=1, padx=10, pady=10) self.button_calcular = ttk.Button(root, text="Calcular", command=self.calcular_juros) self.button_calcular.grid(row=2, column=0, columnspan=2, pady=10) self.button_configurar = ttk.Button(root, text="Configurar Juros", command=self.abrir_configuracoes) self.button_configurar.grid(row=3, column=0, columnspan=2, pady=10) self.resultado = ttk.Label(root, text="") self.resultado.grid(row=4, column=0, columnspan=2, pady=10) def calcular_juros(self): try: valor_total = float(self.entry_valor.get()) parcelas = int(self.entry_parcelas.get()) if parcelas < 1 or parcelas > 18: messagebox.showerror("Erro", "Número de parcelas deve estar entre 1 e 18.") return juros = self.juros_config.get(parcelas, 0) valor_com_juros = valor_total * (1 + juros / 100) valor_parcela = valor_com_juros / parcelas resultado_text = f"Valor Total com Juros: R$ {valor_com_juros:.2f}\n" resultado_text += f"Valor da Parcela: R$ {valor_parcela:.2f}" self.resultado.config(text=resultado_text) except ValueError: messagebox.showerror("Erro", "Por favor, insira valores válidos.") def abrir_configuracoes(self): config_window = tk.Toplevel(self.root) config_window.title("Configurações de Juros") labels = {} entries = {} for i in range(1, 19): labels[i] = ttk.Label(config_window, text=f"Juros para {i}x:") labels[i].grid(row=i-1, column=0, padx=10, pady=5) entries[i] = ttk.Entry(config_window) entries[i].insert(0, str(self.juros_config.get(i, 0))) entries[i].grid(row=i-1, column=1, padx=10, pady=5) def salvar_configuracoes(): for i in range(1, 19): try: self.juros_config[i] = float(entries[i].get()) except ValueError: messagebox.showerror("Erro", "Por favor, insira valores válidos.") return messagebox.showinfo("Sucesso", "Configurações salvas com sucesso!") config_window.destroy() button_salvar = ttk.Button(config_window, text="Salvar", command=salvar_configuracoes) button_salvar.grid(row=18, column=0, columnspan=2, pady=10) if __name__ == "__main__": root = tk.Tk() app = CalculadoraJuros(root) root.mainloop()
Leave a Comment