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 

tkinter: GridLayout (last edited 2011-07-01 23:03:40 by AnthonyMuss)