Untitled
unknown
plain_text
9 months ago
3.7 kB
6
Indexable
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()Editor is loading...
Leave a Comment