Mundo em Python

Calcular Preço pelo Ouro

from tkinter import *
import requests root = Tk()
root.geometry("400x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Calcular Preço pelo Ouro") titulo = Label(
text="Calcular Preço pelo Ouro",
font=("Arial", 20, "bold"),
bg="#103030",
fg="#49e3e3",
)
titulo.place(relx=0.05, rely=0.05) texto_sub1 = Label(
text="Quantidade de grama de ouro",
font=("Arial", 18, "bold"),
bg="#103030",
fg="#49e3e3",
)
texto_sub1.place(relx=0.08, rely=0.25) Quantidade_grama_ouro = StringVar()
Quantidade_grama_ouro_entrada = Entry(
textvariable=Quantidade_grama_ouro,
font=("Arial", 12, "bold"),
bg="white",
fg="blue",
justify="center",
)
Quantidade_grama_ouro_entrada.place(relx=0.05, rely=0.4, relwidth=0.9)
Quantidade_grama_ouro_entrada.focus() # Função para buscar o preço do ouro
def get_gold_price(oncas):
api_key = "goldapi-3t4mgr4sm4000jks-io" # Verifique se a chave está ativa
url = "https://www.goldapi.io/api/XAU/USD"
headers = {"x-access-token": api_key} try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
data = response.json()
price = data.get("price", 0)
return price
else:
return None
except requests.exceptions.RequestException as e:
return None

# Função para limpar os campos
def limpar():
Quantidade_grama_ouro_entrada.delete(0, END)
resultado_texto.config(text="") # Função principal
def app():
try:
gramas = float(Quantidade_grama_ouro.get())
oncas = gramas / 28.3495
preco_onca = get_gold_price(oncas) if preco_onca:
preco_total = oncas * preco_onca
resultado_texto.config(
text=f"O preço do ouro para {gramas:.2f}g é ${preco_total:.2f}"
)
else:
resultado_texto.config(
text="Erro ao obter o preço do ouro. Verifique sua conexão ou chave de API."
)
except ValueError:
resultado_texto.config(text="Valor digitado inválido! Insira um número.") # Botões da interface
but1 = Button(
text="Calcular",
bd=2,
bg="#107db2",
fg="white",
font=("verdana", 12, "bold"),
command=app,
)
but1.place(relx=0.1, rely=0.5, relwidth=0.25, relheight=0.1) 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.5, relwidth=0.25, relheight=0.1) 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.5, relwidth=0.25, relheight=0.1) resultado_texto = Label(
text="",
font=("Arial", 12, "bold"),
bg="#cfe2f3",
)
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.25) root.mainloop()
0