WJG (01/02/22) Making the most of a text widget can be a challenging task but sometimes the solutions can be quite simple. The gnocl::text widget allows the embedding of widgets into a page so the package's gnocl::table widget packed with labels is an option. Can something more simple be realized? The following snippet show how its possible to split a list into row and insert the row elements with a \t separator. Then, using tags, to set the display parameter for the table. Its not a table widget for sure, but visually it serves a similar function.
# !/bin/sh # the next line restarts using tclsh \ exec tclsh "$0" "$@" package require Gnocl ## insert the list contents as in text widget as a formatted table # # @param wid text widget-id # @param lst tcl list # @param id table id # @param args additional tag parameters # proc tabulate {wid lst {id 1} args} { if {$args == ""} { set args "-tabs 100 -editable 0" } foreach row $lst { append res [join $row \t]\n } $wid tag create _tab_table_$id {*}$args ;# note: no error checking $wid insert end $res -tags _tab_table_$id } set txt [gnocl::text] gnocl::window -child $txt -setSize 0.4 set lst(1) {{red orange yellow green blue indigo violet} {magenta cyan yellow brown grey black white}} set lst(2) {{how now brown cow} {she sells sea shells by the sea shore}} set lst(3) {{peter piper picked a peck of pickled peppers} {the peck of peppers peter piper picked}} tabulate $txt $lst(1) 1 -tabs 120 -paragraph red -font {12} tabulate $txt $lst(2) 2 -tabs 80 -foreground magenta tabulate $txt $lst(3) 3 -tabs 80 -foreground white -paragraph #000000 -font {10} tabulate $txt $lst(2) 4