8000 Python GUI - Temperature Converter App · aworleo/programminginpython.com@412d7f0 · GitHub
[go: up one dir, main page]

Skip to content

Commit 412d7f0

Browse files
committed
Python GUI - Temperature Converter App
1 parent b3c07df commit 412d7f0

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

python_GUI_tempConverter.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
__author__ = 'Avinash'
2+
3+
import tkinter as tk
4+
from functools import partial
5+
6+
#global variable
7+
tempVal = "Celsius"
8+
9+
10+
#getting drop down value
11+
def store_temp(sel_temp):
12+
global tempVal
13+
tempVal = sel_temp
14+
15+
16+
#the main conversion
17+
def call_convert(rlabel1, rlabe12, inputn):
18+
tem = inputn.get()
19+
if tempVal == 'Celsius':
20+
f = float((float(tem) * 9/5) + 32)
21+
k = float((float(tem) + 273.15))
22+
rlabel1.config(text="%f Fahrenheit" % f)
23+
rlabe12.config(text="%f Kelvin" % k)
24+
if tempVal == 'Fahrenheit':
25+
c = float((float(tem) - 32) * 5/9)
26+
k = c + 273
27+
rlabel1.config(text="%f Celsius" % c)
28+
rlabe12.config(text="%f Kelvin" % k)
29+
if tempVal == 'Kelvin':
30+
c = float((float(tem) - 273.15))
31+
f = float((float(tem) - 273.15) * 1.8000 + 32.00)
32+
rlabel1.config(text="%f Celsius" % c)
33+
rlabe12.config(text="%f Fahrenheit" % f)
34+
return
35+
36+
#app window configuration and UI
37+
root = tk.Tk()
38+
root.geometry('400x150+100+200')
39+
root.title('Temperature Converter')
40+
root.configure(background='#09A3BA')
41+
root.resizable(width=False, height=False)
42+
root.grid_columnconfigure(1, weight=1)
43+
root.grid_rowconfigure(0, weight=1)
44+
45+
numberInput = tk.StringVar()
46+
var = tk.StringVar()
47+
48+
#label and entry field
49+
input_label = tk.Label(root, text="Enter temperature", background='#09A3BA', foreground="#FFFFFF")
50+
input_entry = tk.Entry(root, textvariable=numberInput)
51+
input_label.grid(row=1)
52+
input_entry.grid(row=1, column=1)
53+
54+
#result label's for showing the other two temperatures
55+
result_label1 = tk.Label(root, background='#09A3BA', foreground="#FFFFFF")
56+
result_label1.grid(row=3, columnspan=4)
57+
result_label2 = tk.Label(root, background='#09A3BA', foreground="#FFFFFF")
58+
result_label2.grid(row=4, columnspan=4)
59+
60+
#drop down initalization and setup
61+
dropDownList = ["Celsius", "Fahrenheit", "Kelvin"]
62+
dropdown = tk.OptionMenu(root, var, *dropDownList, command=store_temp)
63+
var.set(dropDownList[0])
64+
dropdown.grid(row=1, column=3)
65+
dropdown.config(background='#09A3BA', foreground="#FFFFFF")
66+
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF")
67+
68+
#button click
69+
call_convert = partial(call_convert, result_label1, result_label2, numberInput)
70+
result_button = tk.Button(root, text="Convert", command=call_convert, background='#09A3BA', foreground="#FFFFFF")
71+
result_button.grid(row=2, columnspan=4)
72+
73+
root.mainloop()

0 commit comments

Comments
 (0)
0