import tkinter as tk
tempVal = "Ligeiro"
def store_temp(sel_temp):
global tempVal
tempVal = sel_temp
def calcular_iuc(tipo, cilindrada_veiculo, emissao_co2_veiculo, idade_veiculo):
taxa_base = 50
taxa_cilindrada = 0.05
taxa_emissao_co2 = 0.1
taxa_idade = 0.02
iuc = taxa_base
if tipo == 'Ligeiro' and cilindrada_veiculo <= 1000:
iuc += taxa_cilindrada * cilindrada_veiculo
if tipo == 'Ligeiro' and emissao_co2_veiculo > 0:
iuc += taxa_emissao_co2 * emissao_co2_veiculo
if idade_veiculo > 0:
iuc += taxa_idade * idade_veiculo
return iuc
def call_convert(rlabel1, cilindrada_veiculo, emissao_co2_veiculo, Idade_Veiculo):
try:
tipo_veiculo = var.get()
cilindrada = float(cilindrada_veiculo.get())
emissao_co2 = float(emissao_co2_veiculo.get())
idade_veiculo = int(Idade_Veiculo.get())
iuc_resultado = calcular_iuc(tipo_veiculo, cilindrada, emissao_co2, idade_veiculo)
rlabel1.config(text=f"O IUC é: {iuc_resultado:.2f} euros")
except ValueError:
rlabel1.config(text="Erro: Insira valores válidos.")
root = tk.Tk()
root.geometry('350x450')
root.title('Calcular IUC')
root.configure(background='#09A3BA')
root.resizable(width=False, height=False)
root.grid_columnconfigure(1, weight=1)
root.grid_rowconfigure(0, weight=1)
cilindrada_veiculo = tk.DoubleVar()
emissao_co2_veiculo = tk.DoubleVar()
Idade_Veiculo = tk.IntVar()
var = tk.StringVar()
input_label = tk.Label(root, text="Calcular IUC", background='#09A3BA', foreground="#FFFFFF", font=("Arial", "36", "bold"))
input_label.place(relx=0.08, rely=0.05)
label_cilindrada = tk.Label(root, text="Cilindrada Veículo", background='#09A3BA', foreground="#FFFFFF",
font=("Arial", "15", "bold"))
label_cilindrada.place(relx=0.05, rely=0.25)
label_emissao_co2 = tk.Label(root, text="Emissão CO2 Veículo", background='#09A3BA', foreground="#FFFFFF",
font=("Arial", "13", "bold"))
label_emissao_co2.place(relx=0.05, rely=0.35)
label_idade = tk.Label(root, text="Idade Veículo", background='#09A3BA', foreground="#FFFFFF",
font=("Arial", "15", "bold"))
label_idade.place(relx=0.15, rely=0.45)
cilindrada_veiculo_entrada = tk.Entry(root, textvariable=cilindrada_veiculo, background='white', foreground="blue",
justify='center')
cilindrada_veiculo_entrada.place(relx=0.6, rely=0.25)
emissao_co2_veiculo_entrada = tk.Entry(root, textvariable=emissao_co2_veiculo, background='white', foreground="blue",
justify='center')
emissao_co2_veiculo_entrada.place(relx=0.6, rely=0.35)
Idade_Veiculo_entrada = tk.Entry(root, textvariable=Idade_Veiculo, background='white', foreground="blue",
justify='center')
Idade_Veiculo_entrada.place(relx=0.6, rely=0.45)
result_label1 = tk.Label(root, background='#09A3BA', foreground="#FFFFFF", font=("Arial", "15", "bold"))
result_label1.place(relx=0.2, rely=0.85)
dropDownList = ["Ligeiro", "Pesado", "Outros"]
dropdown = tk.OptionMenu(root, var, *dropDownList, command=store_temp)
var.set(dropDownList[0])
dropdown.place(relx=0.35, rely=0.55)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "15", "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "15", "bold"))
result_button = tk.Button(root, text="Calcular", command=lambda: call_convert(result_label1, cilindrada_veiculo, emissao_co2_veiculo, Idade_Veiculo), background='#09A3BA', foreground="#FFFFFF", font=("Arial", "15", "bold"))
result_button.place(relx=0.35, rely=0.7)
root.mainloop()