-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGUI.py
More file actions
55 lines (39 loc) · 1.46 KB
/
GUI.py
File metadata and controls
55 lines (39 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import tkinter as tk
import requests
HEIGHT = 500
WIDTH = 600
# api.openweathermap.org/data/2.5/weather?id={city id}&appid={your api key}
def format_response(weather):
try:
name=weather['name']
desc=weather['weather'][0]['description']
temp=weather['main']['temp']
final_str='City: %s \nConditions: %s\n Temprature(°C): %s'%(name,desc,temp)
except:
final_str='No data retrieved'
return final_str
def get_weather(city):
weather_key='KEY'
url='https://api.openweathermap.org/data/2.5/weather'
params={'APPID':weather_key,'q':city,'units': 'metric'}
response=requests.get(url,params=params)
weather=response.json()
print(weather)
label['text']=format_response(weather)
root=tk.Tk()
canvas=tk.Canvas(root,height=HEIGHT,width=WIDTH)
canvas.pack()
back_img=tk.PhotoImage(file='Landscape.png')
back_label=tk.Label(root,image=back_img)
back_label.place(relwidth=1,relheight=1)
frame=tk.Frame(root,bg='#80c1ff',bd=5)
frame.place(relx=0.5,rely=0.1,relwidth=0.75,relheight=0.1,anchor='n')
entry=tk.Entry(frame,font=40)
entry.place(relwidth=0.65,relheight=1)
button=tk.Button(frame,text='Get Weather',font=40,command=lambda: get_weather(entry.get()))
button.place(relx=0.7,relheight=1,relwidth=0.3)
lower_frame=tk.Frame(root,bg='#80c1ff',bd=10)
lower_frame.place(relx=0.5,rely=0.25,relwidth=0.75,relheight=0.6,anchor='n')
label=tk.Label(lower_frame,font=40)
label.place(relwidth=1,relheight=1)
root.mainloop()