Mundo em Python

Calcular Desvio do Orçamento

from tkinter import *

root = Tk()
root.geometry("700x450")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Calcular Desvio do Orçamento") titulo = Label(text="Calcular Desvio do Orçamento",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.1, rely=0.05) texto_sub1 = Label(text="Orçamento Inicial:",
font=("Arial", 20, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.15, rely=0.3) texto_sub2 = Label(text="Custo Final:",
font=("Arial", 20, "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.24, rely=0.49) # Entradas
Orcamento_Inicial = StringVar()
entrada_orcamento = Entry(textvariable=Orcamento_Inicial,
font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center')
entrada_orcamento.place(relx=0.55, rely=0.31, relwidth=0.35)
entrada_orcamento.focus() Custo_Final = StringVar()
entrada_custo = Entry(textvariable=Custo_Final,
font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center')
entrada_custo.place(relx=0.55, rely=0.5, relwidth=0.35) def limpar():
entrada_orcamento.delete(0, END)
entrada_custo.delete(0, END)
resultado_texto.config(text="") # Função para calcular o desvio
def calcular():
try:
orcamento = float(Orcamento_Inicial.get())
custo_final = float(Custo_Final.get()) desvio_absoluto = custo_final - orcamento
if orcamento != 0:
desvio_percentual = (desvio_absoluto / orcamento) * 100
else:
desvio_percentual = 0

if desvio_absoluto > 0:
status = "SOBRE ORÇAMENTO"
elif desvio_absoluto < 0:
status = "ABAIXO ORÇAMENTO"
else:
status = "SEM DESVIO"

resultado_texto.config(
text=f"Desvio Absoluto: {desvio_absoluto:.2f}\n"
f"Desvio Percentual: {desvio_percentual:.2f}%\n"
f"Status: {status}"
) except ValueError:
resultado_texto.config(text="Valor inválido! Introduza números.") botao_calcular = Button(text="Calcular", bd=2, bg='#107db2', fg='white',
font=('Verdana', 12, 'bold'), command=calcular)
botao_calcular.place(relx=0.1, rely=0.65, relwidth=0.25, relheight=0.1) botao_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('Verdana', 12, 'bold'), command=limpar)
botao_limpar.place(relx=0.4, rely=0.65, relwidth=0.25, relheight=0.1) botao_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('Verdana', 12, 'bold'), command=root.destroy)
botao_sair.place(relx=0.7, rely=0.65, relwidth=0.25, relheight=0.1) resultado_texto = Label(text="", font=("Arial", 12, "bold"),
bg="#cfe2f3", anchor='center', justify='center')
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15) root.mainloop()
0