from tkinter import *
# Função para converter jardas quadradas para hectares e vice-versa
def jardas_para_hectares_ou_vice_versa():
try:
# Obtém o valor inserido e a opção selecionada no dropdown
v = float(valor.get())
escolha = var1.get()
if escolha == "Hectares":
# Converte de hectares para jardas quadradas
metros_quadrados_por_hectare = 10_000
metros_quadrados_por_jarda = 0.83612736
jardas_quadradas_por_hectare = metros_quadrados_por_hectare / metros_quadrados_por_jarda
jardas_quadradas = v * jardas_quadradas_por_hectare
mensagem = f"{v} hectare(s) é igual a {jardas_quadradas:.2f} jardas quadradas."
else:
# Converte de jardas quadradas para hectares
metros_quadrados_por_jarda = 0.83612736
hectares = (v * metros_quadrados_por_jarda) / 10000
mensagem = f"{v} jarda(s) quadrada(s) é igual a {hectares:.6f} hectares."
# Exibe o resultado na Label
resultado_texto.config(text=mensagem)
except ValueError:
# Caso o valor digitado seja inválido
resultado_texto.config(text="Por favor, insira um valor numérico válido!")
# Função para limpar os campos
def limpar():
valor_entrada.delete(0, END) # Limpa o campo de entrada
resultado_texto.config(text="") # Limpa o texto de resultado
# Cria a janela principal
root = Tk()
root.geometry("500x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Hectares para Jardas e Vice-Versa")
# Título
titulo = Label(text="Hectares para Jardas e Vice-Versa",
font=("Arial", "20", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.08, rely=0.05)
# Label do campo de entrada
texto_sub1 = Label(text="Valor:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.25, rely=0.25)
# Campo de entrada para o valor
valor = StringVar()
valor_entrada = Entry(textvariable=valor,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
valor_entrada.place(relx=0.45, rely=0.26, relwidth=0.35)
# Dropdown para selecionar a conversão
var1 = StringVar()
dropDownList1 = ["Hectares", "Jardas"]
dropdown1 = OptionMenu(root, var1, *dropDownList1)
dropdown1.config(font=("Arial", "15", "bold"), bg="#49e3e3", fg="#103030")
var1.set(dropDownList1[0])
dropdown1.place(relx=0.05, rely=0.4, relwidth=0.9)
dropdown1["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "15", "bold"))
# Botão para calcular
but1 = Button(text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=jardas_para_hectares_ou_vice_versa)
but1.place(relx=0.1, rely=0.65, relwidth=0.25, relheight=0.1)
# Botão para limpar
but_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.4, rely=0.65, relwidth=0.25, relheight=0.1)
# Botão para sair
but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.7, rely=0.65, relwidth=0.25, relheight=0.1)
# Label para exibir o resultado
resultado_texto = Label(text="",
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15)
# Inicia o loop da interface gráfica
root.mainloop()