Welcome, guest | Sign In | My Account | Store | Cart
# Python Version: 3 or newer
# people using python 2,please replace tkinter with Tkinter
# Author: Karim Khan (k4karim27@gmail.com)


from tkinter import *
from tkinter import ttk


def calculate1(*args):
    try:
        value1 = float(width.get())
        value2 = float(lenght.get())
        area.set( value1 * value2 )
    except ValueError:
        pass
def calculate2(*args):
    try:
        value1 = float(width.get())
        value2 = float(lenght.get())
        area.set( 0.5*value1 * value2 )
    except ValueError:
        pass   
def calculate3(*args):
    try:
        value3 = float(radius.get())
        
        area.set( 3.14* value3 * value3 )
    except ValueError:
        pass
def reset():
  width_entry.delete(0, END)
  lenght_entry.delete(0, END)
  radius_entry.delete(0, END)

root = Tk()
root.title("Area Calculator")
root.geometry("290x120")

mainframe = ttk.Frame(root, padding="5 5 15 15")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)

width = StringVar()
radius = StringVar()
lenght = StringVar()
area = StringVar()

width_entry = ttk.Entry(mainframe, width=5, textvariable=width)
width_entry.grid(column=1, row=1, sticky=(E))
lenght_entry = ttk.Entry(mainframe, width=5, textvariable=lenght)
lenght_entry.grid(column=2, row=1, sticky=(E))
radius_entry = ttk.Entry(mainframe, width=5, textvariable=radius)
radius_entry.grid(column=3, row=1, sticky=(E))

ttk.Label(mainframe,background="white", textvariable=area).grid(column=2, row=2, sticky=(W, E))
ttk.Button(mainframe, text="Circle", command=calculate3).grid(column=3, row=3, sticky=W)
ttk.Button(mainframe, text="Triangle", command=calculate2).grid(column=1, row=3, sticky=E)
ttk.Button(mainframe, text="Rectangle", command=calculate1).grid(column=2, row=3)
ttk.Button(mainframe, text="Reset", command=reset).grid(column=3, row=2, sticky=E)

ttk.Label(mainframe, text="Width").grid(column=1, row=1, sticky=W)
ttk.Label(mainframe, text="Lenght").grid(column=2, row=1, sticky=W)
ttk.Label(mainframe, text="Radius").grid(column=3, row=1, sticky=W)
ttk.Label(mainframe, text="Area: ").grid(column=1, row=2, sticky=W)

for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)

width_entry.focus()
lenght_entry.focus()
root.bind('<Return>', calculate1)
root.bind('<Return>', calculate2)

root.mainloop()

Diff to Previous Revision

--- revision 1 2014-07-02 16:58:06
+++ revision 2 2014-07-03 09:16:14
@@ -6,13 +6,7 @@
 from tkinter import *
 from tkinter import ttk
 
-def calculate3(*args):
-    try:
-        value3 = float(radius.get())
-        
-        area.set( 3.14* value3 * value3 )
-    except ValueError:
-        pass
+
 def calculate1(*args):
     try:
         value1 = float(width.get())
@@ -27,12 +21,18 @@
         area.set( 0.5*value1 * value2 )
     except ValueError:
         pass   
-def close():
-  root.destroy()
+def calculate3(*args):
+    try:
+        value3 = float(radius.get())
+        
+        area.set( 3.14* value3 * value3 )
+    except ValueError:
+        pass
 def reset():
   width_entry.delete(0, END)
   lenght_entry.delete(0, END)
   radius_entry.delete(0, END)
+
 root = Tk()
 root.title("Area Calculator")
 root.geometry("290x120")

History