62 lines
1.6 KiB
Tcl
62 lines
1.6 KiB
Tcl
#!/bin/sh
|
|
# the next line restarts using wish \
|
|
exec wish "$0" ${1+"$@"}
|
|
|
|
## basic.tcl
|
|
##
|
|
## This demo shows the basic use of the table widget
|
|
##
|
|
## jeff at hobbs org
|
|
|
|
source [file join [file dirname [info script]] loadtable.tcl]
|
|
|
|
array set table {
|
|
rows 8
|
|
cols 8
|
|
table .t
|
|
array t
|
|
}
|
|
|
|
proc fill { array x y } {
|
|
upvar $array f
|
|
for {set i -$x} {$i<$x} {incr i} {
|
|
for {set j -$y} {$j<$y} {incr j} { set f($i,$j) "r$i,c$j" }
|
|
}
|
|
}
|
|
|
|
## Test out the use of a procedure to define tags on rows and columns
|
|
proc rowProc row { if {$row>0 && $row%2} { return OddRow } }
|
|
proc colProc col { if {$col>0 && $col%2} { return OddCol } }
|
|
|
|
label .label -text "TkTable v1 Example"
|
|
|
|
fill $table(array) $table(rows) $table(cols)
|
|
table $table(table) -rows $table(rows) -cols $table(cols) \
|
|
-variable $table(array) \
|
|
-width 6 -height 6 \
|
|
-titlerows 1 -titlecols 2 \
|
|
-roworigin -1 -colorigin -2 \
|
|
-yscrollcommand {.sy set} -xscrollcommand {.sx set} \
|
|
-rowtagcommand rowProc -coltagcommand colProc \
|
|
-colstretchmode last -rowstretchmode last \
|
|
-selectmode extended -sparsearray 0
|
|
|
|
scrollbar .sy -command [list $table(table) yview]
|
|
scrollbar .sx -command [list $table(table) xview] -orient horizontal
|
|
button .exit -text "Exit" -command {exit}
|
|
|
|
grid .label - -sticky ew
|
|
grid $table(table) .sy -sticky news
|
|
grid .sx -sticky ew
|
|
grid .exit -sticky ew -columnspan 2
|
|
grid columnconfig . 0 -weight 1
|
|
grid rowconfig . 1 -weight 1
|
|
|
|
$table(table) tag config OddRow -bg orange -fg purple
|
|
$table(table) tag config OddCol -bg brown -fg pink
|
|
|
|
$table(table) width -2 7 -1 7 1 5 2 8 4 14
|
|
|
|
puts [list Table is $table(table) with array [$table(table) cget -var]]
|
|
|