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 edit
- grid computing
See Also edit
- GRIDPLUS2
- simplified grid
Documentation edit
- official reference
- Book Practical Programming in Tcl and Tk, Fourth Edition
- contains an excellent introduction to [grid]
Synopsis edit
-
- 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 edit
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 "
RELATIVE PLACEMENT" section in the manual page), then the command is processed in the same way as
grid configure.
Examples edit
- A little spreadsheet
Basic Example edit
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 edit
(add some detail here about why and how [
pack] and [
grid] might be used together
Discussion edit
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.