Grid Layout
shows how to produce an effective layout with the grid manager
1 #-Guilherme H. Polo Goncalves
2
3 from Tkinter import Tk, Button, Checkbutton, Label, Entry, Frame
4
5 class App:
6 def __init__(self, master):
7 column0_padx = 24
8 row_pady = 36
9
10 #Label 1
11 lbl_testcase_exec = Label(master, text="Test case execution",
12 wraplength=100, anchor='w', justify='left')
13 lbl_results_cmp = Label(master, text="Results comparison",
14 wraplength=100, justify='left')
15 lbl_tolerance = Label(master, text="Tolerance (5%)", wraplength=100)
16 testcase_exec = Checkbutton(master)
17 results_cmp = Checkbutton(master)
18 tolerance = Entry(master, width=4)
19 lbl_analysis = Label(master, text="Analysis Library")
20 analysis_lib = Entry(master, width=30)
21
22 lbl_testcase_exec.grid(row=0, column=2, padx=20, pady=12, sticky='w')
23 lbl_results_cmp.grid(row=0, column=3, pady=12, sticky='w')
24 lbl_tolerance.grid(row=0, column=4, padx=20, pady=12, sticky='wn')
25 lbl_analysis.grid(row=1, column=0, sticky='w', padx=column0_padx)
26 analysis_lib.grid(row=1, column=1, sticky='w')
27 testcase_exec.grid(row=1, column=2, padx=20, sticky='w')
28 results_cmp.grid(row=1, column=3, sticky='w')
29 tolerance.grid(row=1, column=4, padx=20, sticky='w')
30
31 #Label 2
32 lbl_ref_analysis = Label(
33 master, text="Reference Analysis Libary Version",
34 wraplength=150, justify='left', pady=row_pady)
35 ref_analysis_lib = Entry(master, width=30)
36 lbl_ref_analysis.grid(row=2, column=0, sticky='w', padx=column0_padx)
37 ref_analysis_lib.grid(row=2, column=1, sticky='w')
38
39 # version
40 lbl_version = Label(master, text="Version under Test")
41 version = Label(master, text="vA.B.C.D")
42 lbl_version.grid(row=3, column=0, sticky='w', padx=column0_padx)
43 version.grid(row=3, column=1, sticky='w')
44
45 # test all
46 lbl_testall = Label(master, text="Test All")
47 testall = Checkbutton(master)
48 lbl_testall.grid(row=4, column=0, pady=row_pady, padx=column0_padx,
49 sticky='w')
50 testall.grid(row=4, column=1, sticky='w')
51
52 # buttons
53 bottom_frame = Frame(master)
54 bottom_frame.grid(row=5, column=1, columnspan=3, sticky='w')
55
56 btn_start = Button(bottom_frame, text = "Go", width=7)
57 btn_start.pack(side='left')
58 btn_commit = Button(bottom_frame, text="Commit", width=7)
59 btn_commit.pack(side='left', padx=80)
60 btn_exit = Button(bottom_frame, text="Exit", width=7)
61 btn_exit.pack(side='left')
62
63 root = Tk()
64 root.title("Test Automation")
65 root.minsize(800, 400)
66 app = App(root)
67 root.mainloop()
68