]> vault307.fbx.one Git - mu_code.git/blob - tkinterTutorial.py
early learning in mu editor
[mu_code.git] / tkinterTutorial.py
1 #!/usr/bin/python3
2
3 from tkinter import *
4 from tkinter import ttk
5 # define calculate function
6 def calculate(*args):
7 try:
8 value=float(feet.get())
9 meters.set(int(0.3048 * value * 10000.0 + 0.5)/1000.0)
10 except ValueError:
11 pass
12 # Set up Main Application Window
13 root=Tk()
14 root.title("Feet to Meters")
15
16 # Create Content Frame
17 mainframe=ttk.Frame(root, padding="3 3 12 12")
18 # Put grid in Content Frame
19 mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
20 root.columnconfigure(0, weight=1)
21 root.rowconfigure(0, weight=1)
22 # Create entry widget
23 feet=StringVar()
24 feet_entry=ttk.Entry(mainframe, width=7, textvariable=feet)
25 feet_entry.grid(column=2, row=1, sticky=(W, E))
26 # Create remaining widgets
27 meters=StringVar()
28 ttk.Label(mainframe, textvariable=meters).grid(column=2, row=2,
29 sticky=(W,E))
30
31 ttk.Button(mainframe, text='Calculate', command=calculate).grid(column =3,
32 row=3, sticky=W)
33
34 ttk.Label(mainframe, text="feet").grid(column=3, row=1, sticky=W)
35 ttk.Label(mainframe, text="is equivalent to").grid(column=1, row=2, sticky=E)
36 ttk.Label(mainframe, text="meters").grid(column=3, row=2, sticky=W)
37 # finishing touches
38 for child in mainframe.winfo_children():
39 child.grid_configure(padx=5, pady=5)
40
41 feet_entry.focus()
42 root.bind("<Return>", calculate)
43 # Tkinter event loop
44 root.mainloop()