** Summary ** Grid is one of several [Geometry Managers]. Some others are [pack] and [place]. Those interested in grid may also want to have a look at [GRIDPLUS2]. ** Disambiguation ** [grid computing]: ** See Also ** [GRIDPLUS2]: [simplified grid]: ** Documentation ** [http://www.tcl.tk/man/tcl/TkCmd/grid.htm%|%official reference]: [Book Practical Programming in Tcl and Tk, Fourth Edition]: contains an excellent introduction to [[grid] ** Synopsis ** : '''grid''' ''slave ?slave ...? ?options?'' : '''[grid bbox]''' ''master ?column row? ?column2 row2?'' : '''[grid columnconfigure]''' ''master index ?-option value...?'' : '''[grid configure]''' ''slave ?slave ...? ?options?'' : '''[grid forget]''' ''slave ?slave ...?'' : '''[grid info]''' ''slave'' : '''[grid location]''' ''master x y'' : '''[grid propagate]''' ''master ?boolean?'' : '''[grid remove]''' ''slave ?slave ...?'' : '''[grid rowconfigure]''' ''master index ?-option value...?'' : '''[grid size]''' ''master'' : '''[grid slaves]''' ''master ?-option value?'' ** Description ** Grid is excellent for many kinds of common GUI forms because it arranges widgets in nice rows and columns, and handles resizing quite nicely. If the first argument to '''grid''' is suitable as the first slave argument to '''[grid configure]''', either a window name (i.e., a value starting with “`.`”) or one of the characters “`x`” or “`^`” (see the "[http://www.tcl.tk/man/tcl8.6/TkCmd/grid.htm#M28%|%RELATIVE PLACEMENT]" section in the manual page), then the command is processed in the same way as '''[grid configure]'''. ** Examples ** [A little spreadsheet]: ** Basic Example ** A simple example is a panel with just a few labels and entries. ====== package require Tk foreach field {Name Address City State Phone} { # Create a couple of widgets set l [label .lab$field -text $field] set e [entry .ent$field -justify right ] # Assign both to a row in the grid grid $l $e -padx 4 -pady 4 # Then adjust how they appear grid $l -sticky e grid $e -sticky ew } # X-resize is done by the entry column grid columnconfigure . 1 -weight 1 # Y-resize should be at the bottom... set lastrow [lindex [grid size .] 1] grid rowconfigure . [expr $lastrow - 1] -weight 1 ====== ** Using [[`[pack]`] and [[grid] Together ** (add some detail here about why and how [[`[pack]`] and [[`[grid]`] might be used together ** Discussion ** [https://groups.google.com/forum/#!topic/comp.lang.tcl/hlkANaEDDHE%|%Tcl/Tk 8.5 vs iwidget 4.0.2] , [comp.lang.tcl] ,2008-08-18 , describes how a change between Tk 8.4 and 8.5 causes code which depends on the grid default behavior may need to be modified. The specific example is the [iwidgets] disjointlistbox, but other code may find the same issue. <> Command | GUI | Arts and Crafts of Tcl-Tk Programming | Tk syntax help