Skip to content

Commit 004b947

Browse files
Add files via upload
1 parent 312d954 commit 004b947

File tree

6 files changed

+139
-0
lines changed

6 files changed

+139
-0
lines changed

weather application/icon.png

2.32 KB
Loading

weather application/icon2.png

1.04 KB
Loading

weather application/icon3.png

1.29 KB
Loading

weather application/icon4.png

635 Bytes
Loading

weather application/icon5.png

1.38 KB
Loading

weather application/weather.py

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
from tkinter import *
2+
import tkinter as tk
3+
from datetime import datetime
4+
from PIL import ImageTk , Image
5+
import requests
6+
from tkinter import messagebox
7+
8+
class Weather():
9+
10+
11+
def weather_report(self):
12+
13+
self.url = "http://api.openweathermap.org/data/2.5/weather?q="
14+
self.cityname = self.loc.get(1.0,END)
15+
self.api_key = '979d87e04f9d3a24d8806502c07a0ccf'
16+
self.data = requests.get(self.url+self.cityname+'&appid='+self.api_key).json()
17+
18+
19+
if self.data['cod'] == '404':
20+
messagebox.showerror('Error','City Not Found !!')
21+
else:
22+
self.location['text'] = self.data['name'] + "," + self.data['sys']['country']
23+
self.c = self.data['main']['temp_max'] - 273.15
24+
self.f = self.c*9/5+32
25+
self.weather['text'] = self.data['weather'][0]['main']
26+
self.weather['font'] = ('verdana',20,'bold')
27+
self.temperature['text'] = f'{self.c}°C \n {self.f}°F'
28+
self.temperature['font'] = ('verdana',15,'bold')
29+
self.humidity['text'] = self.data['main']['humidity']
30+
self.humidity['font'] = ('verdana',15,'bold')
31+
self.pressure['text'] = self.data['main']['pressure']
32+
self.pressure['font'] = ('verdana',15,'bold')
33+
34+
35+
36+
37+
38+
39+
40+
41+
42+
43+
44+
45+
46+
def __init__(self):
47+
self.root = tk.Tk()
48+
self.root.geometry('500x300')
49+
self.root.title("Weather Application")
50+
self.root.maxsize(500,300)
51+
self.root.minsize(500,300)
52+
53+
self.header = Label(self.root,width=100,height=2,bg="#00274c")
54+
self.header.place(x=0,y=0)
55+
56+
self.font = ('verdana',10,'bold')
57+
58+
self.date = Label(self.root,text=datetime.now().date(),bg="#00274c",fg="white",font=self.font)
59+
self.date.place(x=400,y=5)
60+
61+
self.heading = Label(self.root,text="Weather Report",bg="#00274c",fg="white",font=self.font)
62+
self.heading.place(x=180,y=5)
63+
64+
65+
self.location = Label(self.root,text="NA-/",bg="#00274c",fg="white",font=self.font)
66+
self.location.place(x=10,y=5)
67+
68+
self.img = ImageTk.PhotoImage(Image.open('icon.png'))
69+
self.image = Label(self.root,image=self.img)
70+
self.image.place(x=20,y=40)
71+
72+
self.name = Label(self.root,text="City or Country Name",fg="#00274c",font=self.font)
73+
self.name.place(x=140,y=45)
74+
75+
self.loc = Text(self.root,width=25,height=2)
76+
self.loc.place(x=140,y=70)
77+
78+
self.button = Button(self.root,text="Search",bg="#00274c",fg="white",font=self.font,relief=RAISED,borderwidth=3,command=self.weather_report)
79+
self.button.place(x=350,y=73)
80+
81+
self.line1 = Label(self.root,bg="#00274c",width=20,height=0)
82+
self.line1.place(x=0,y=150)
83+
self.line2 = Label(self.root,bg="#00274c",width=20,height=0)
84+
self.line2.place(x=360,y=150)
85+
86+
self.report = Label(self.root,text="Weather Report",bg="#00274c",fg="white",font=self.font,padx=10)
87+
self.report.place(x=180,y=150)
88+
89+
90+
self.img2 = ImageTk.PhotoImage(Image.open('icon2.png'))
91+
self.image2 = Label(self.root,image=self.img2)
92+
self.image2.place(x=90,y=180)
93+
self.weather = Label(self.root,text="NA/-",fg="#00274c",font=self.font)
94+
self.weather.place(x=90,y=230)
95+
96+
97+
self.img3 = ImageTk.PhotoImage(Image.open('icon3.png'))
98+
self.image3 = Label(self.root,image=self.img3)
99+
self.image3.place(x=200,y=180)
100+
self.temperature = Label(self.root,text="NA/-",fg="#00274c",font=self.font)
101+
self.temperature.place(x=200,y=230)
102+
103+
104+
self.img4 = ImageTk.PhotoImage(Image.open('icon4.png'))
105+
self.image4 = Label(self.root,image=self.img4)
106+
self.image4.place(x=310,y=180)
107+
self.humidity = Label(self.root,text="NA/-",fg="#00274c",font=self.font)
108+
self.humidity.place(x=310,y=230)
109+
110+
111+
self.img5 = ImageTk.PhotoImage(Image.open('icon5.png'))
112+
self.image5 = Label(self.root,image=self.img5)
113+
self.image5.place(x=380,y=180)
114+
self.pressure = Label(self.root,text="NA/-",fg="#00274c",font=self.font)
115+
self.pressure.place(x=380,y=230)
116+
117+
118+
119+
120+
121+
122+
123+
124+
125+
self.root.mainloop()
126+
127+
128+
129+
130+
131+
132+
133+
134+
135+
if __name__ == '__main__':
136+
137+
Weather()
138+
139+

0 commit comments

Comments
 (0)