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