Clima em graus celsius e em fahrenheit (usando Tkinter)
from tkinter import *
root =Tk()
class tempo():
def __init__(self):
self.root = root
self.janela()
self.clima()
root.mainloop()
def janela(self):
self.root.title("Temperatura (clima)")
self.root.geometry("500x600")
self.root.resizable(False, False)
def clima(self):
# Nome da Cidade
self.nome_cidade = StringVar()
self.lb_nome_cidade = Label(text=" Nome da Cidade ",
font=("Helvetica", '10'),
bg="#76dade",fg='#ffffff')
self.lb_nome_cidade.place(relx=0.15, rely=0.05)
self.nome_cidade_entry = Entry(textvariable=self.nome_cidade)
self.nome_cidade_entry.place(relx=0.5, rely=0.05)
# Butão de calcular o Total do produto
self.bt_mostrar = Button(text="Mostrar", bd=2,
font=('verdana', '8', 'bold'),
bg='#32dce3',
fg='white',
command=self.butao1)
self.bt_mostrar.place(relx=0.4, rely=0.1, relwidth=0.2,
relheight=0.1)
# Localização
self.location = StringVar()
self.lb_location=Label(text="Localização ",
font=("Helvetica", '12', 'bold'))
self.lb_location.place(relx=0.15, rely=0.25)
self.location_resultado = Label(textvariable=self.location,
font=("Helvetica", '12'))
self.location_resultado.place(relx=0.5, rely=0.25)
# Temperatura
self.temperatura = StringVar()
self.lb_temperatura = Label(text="Temperatura (em ºC)",
font=("Helvetica", '12', 'bold'))
self.lb_temperatura.place(relx=0.15, rely=0.35)
self.temperatura_resultado = Label(textvariable=self.temperatura,
font=("Helvetica", '12'))
self.temperatura_resultado.place(relx=0.5, rely=0.35)
# Clima
self.clima = StringVar()
self.lb_clima = Label(text="Clima",
font=("Helvetica", '12', 'bold'))
self.lb_clima.place(relx=0.15, rely=0.45)
self.clima_resultado = Label(textvariable=self.clima,
font=("Helvetica", '12'))
self.clima_resultado.place(relx=0.5, rely=0.45)
#Min Temperature
self.min = StringVar()
self.lb_min = Label(text=" Temperatura Mínimo (em ºC)",
font=("Helvetica", '12', 'bold'))
self.lb_min.place(relx=0.15, rely=0.55)
self.min_resultado = Label(textvariable=self.min,
font=("Helvetica", '12'))
self.min_resultado.place(relx=0.6, rely=0.55)
# Max Temperature
self.max = StringVar()
self.lb_max = Label(text=" Temperatura Máxima (em ºC)",
font=("Helvetica", '12', 'bold'))
self.lb_max.place(relx=0.15, rely=0.65)
self.max_resultado = Label(textvariable=self.max,
font=("Helvetica", '12'))
self.max_resultado.place(relx=0.63, rely=0.65)
# Humidade
self.humidade = StringVar()
self.lb_humidade = Label(text="Humidade (em %)",
font=("Helvetica", '12', 'bold'))
self.lb_humidade.place(relx=0.15, rely=0.75)
self.humidade_resultado = Label(textvariable=self.humidade,
font=("Helvetica", '12'))
self.humidade_resultado.place(relx=0.6, rely=0.75)
# Vento
self.vento = StringVar()
self.lb_vento = Label(text="Vento (em km/h)",
font=("Helvetica", '12', 'bold'))
self.lb_vento.place(relx=0.15, rely=0.85)
self.vento_resultado = Label(textvariable=self.vento,
font=("Helvetica", '12'))
self.vento_resultado.place(relx=0.6, rely=0.85)
def butao1(self):
import requests
api_key = "4256b3de394a56a86ee35e43af6f5c2e"
nome_cidade1= self.nome_cidade.get()
data = requests.get(f"https://api.openweathermap.org/data/2.5/"
f"weather?q="
f"{nome_cidade1}"
f"&units=metric&APPID={api_key}")
localicacao1 =data.json().get('name'), data.json().get('sys').\
get('country')
temperatura1 = data.json().get('main')['temp']
clima1 = data.json().get('weather')[0].get('main')
min1 = data.json().get('main')['temp_min']
max1 =data.json().get('main')['temp_max']
humidade1 = data.json().get('main')['humidity']
vento1 = data.json().get('wind')['speed']
#data.json().get('main')['temp_max']
return self.location.set(localicacao1), \
self.temperatura.set(temperatura1),\
self.clima.set(clima1),self.min.set(min1),\
self.max.set(max1), \
self.humidade.set(humidade1),self.vento.set(vento1)
tempo()
#Outra Versão
from tkinter import *
import requests
root = Tk()
class tempo():
def __init__(self):
self.root = root
self.janela()
self.clima()
root.mainloop()
def janela(self):
self.root.title("Temperatura (clima)")
self.root.geometry("500x600")
self.root.resizable(False, False)
def clima(self):
# Nome da Cidade
self.nome_cidade = StringVar()
self.lb_nome_cidade = Label(text=" Nome da Cidade ",
font=("Helvetica", '10'),
bg="#76dade", fg='#ffffff')
self.lb_nome_cidade.place(relx=0.15, rely=0.05)
self.nome_cidade_entry = Entry(textvariable=self.nome_cidade)
self.nome_cidade_entry.place(relx=0.5, rely=0.05)
# Botão de calcular o Total do produto
self.bt_mostrar = Button(text="Mostrar", bd=2,
font=('verdana', '8', 'bold'),
bg='#32dce3',
fg='white',
command=self.butao1)
self.bt_mostrar.place(relx=0.4, rely=0.1, relwidth=0.2,
relheight=0.1)
# Localização
self.location = StringVar()
self.lb_location = Label(text="Localização ",
font=("Helvetica", '12', 'bold'))
self.lb_location.place(relx=0.15, rely=0.25)
self.location_resultado = Label(textvariable=self.location,
font=("Helvetica", '12'))
self.location_resultado.place(relx=0.5, rely=0.25)
# Temperatura
self.temperatura = StringVar()
self.lb_temperatura = Label(text="Temperatura (em ºF)",
font=("Helvetica", '12', 'bold'))
self.lb_temperatura.place(relx=0.15, rely=0.35)
self.temperatura_resultado = Label(textvariable=self.temperatura,
font=("Helvetica", '12'))
self.temperatura_resultado.place(relx=0.5, rely=0.35)
# Clima
self.clima = StringVar()
self.lb_clima = Label(text="Clima",
font=("Helvetica", '12', 'bold'))
self.lb_clima.place(relx=0.15, rely=0.45)
self.clima_resultado = Label(textvariable=self.clima,
font=("Helvetica", '12'))
self.clima_resultado.place(relx=0.5, rely=0.45)
# Temperatura Mínima
self.min = StringVar()
self.lb_min = Label(text="Temperatura Mínima (em ºF)",
font=("Helvetica", '12', 'bold'))
self.lb_min.place(relx=0.15, rely=0.55)
self.min_resultado = Label(textvariable=self.min,
font=("Helvetica", '12'))
self.min_resultado.place(relx=0.6, rely=0.55)
# Temperatura Máxima
self.max = StringVar()
self.lb_max = Label(text="Temperatura Máxima (em ºF)",
font=("Helvetica", '12', 'bold'))
self.lb_max.place(relx=0.15, rely=0.65)
self.max_resultado = Label(textvariable=self.max,
font=("Helvetica", '12'))
self.max_resultado.place(relx=0.63, rely=0.65)
# Humidade
self.humidade = StringVar()
self.lb_humidade = Label(text="Humidade (em %)",
font=("Helvetica", '12', 'bold'))
self.lb_humidade.place(relx=0.15, rely=0.75)
self.humidade_resultado = Label(textvariable=self.humidade,
font=("Helvetica", '12'))
self.humidade_resultado.place(relx=0.6, rely=0.75)
# Vento
self.vento = StringVar()
self.lb_vento = Label(text="Vento (em km/h)",
font=("Helvetica", '12', 'bold'))
self.lb_vento.place(relx=0.15, rely=0.85)
self.vento_resultado = Label(textvariable=self.vento,
font=("Helvetica", '12'))
self.vento_resultado.place(relx=0.6, rely=0.85)
def butao1(self):
api_key = "4256b3de394a56a86ee35e43af6f5c2e"
nome_cidade1 = self.nome_cidade.get()
data = requests.get(f"https://api.openweathermap.org/data/2.5/"
f"weather?q={nome_cidade1}"
f"&units=metric&APPID={api_key}")
localicacao1 = f"{data.json().get('name')}, {data.json().get('sys').get('country')}"
temperatura1 = data.json().get('main')['temp']
clima1 = data.json().get('weather')[0].get('main')
min1 = data.json().get('main')['temp_min']
max1 = data.json().get('main')['temp_max']
humidade1 = data.json().get('main')['humidity']
vento1 = data.json().get('wind')['speed']
# Conversão para Fahrenheit
temperatura1_f = (temperatura1 * 9 / 5) + 32
min1_f = (min1 * 9 / 5) + 32
max1_f = (max1 * 9 / 5) + 32
# Atualizando os valores na interface gráfica
self.location.set(localicacao1)
self.temperatura.set(f"{temperatura1_f:.2f} °F")
self.clima.set(clima1)
self.min.set(f"{min1_f:.2f} °F")
self.max.set(f"{max1_f:.2f} °F")
self.humidade.set(f"{humidade1} %")
self.vento.set(f"{vento1} km/h")
tempo()
Comentários
Enviar um comentário