1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
#! /usr/bin/env tclsh
#==============================================================================
# Demonstrates the use of the scrollutil::scrollarea widget in connection with
# a tablelist.
#
# Copyright (c) 2019-2024 Csaba Nemethi (E-mail: csaba.nemethi@t-online.de)
#==============================================================================
package require Tk 8.5-
package require tablelist_tile 6.5-
package require scrollutil_tile
set dir [file dirname [info script]]
source [file join $dir styleUtil.tcl]
wm title . "Scrolled Tablelist"
#
# Create the tablelist within a scrollarea
#
set f [ttk::frame .f]
set sa [scrollutil::scrollarea $f.sa]
set tbl $sa.tbl
tablelist::tablelist $tbl \
-columntitles {"Column 0" "Column 1" "Column 2" "Column 3" "Column 4"
"Column 5" "Column 6" "Column 7" "Column 8" "Column 9"} \
-titlecolumns 1
switch [tk windowingsystem] {
x11 { set width 54 }
win32 { set width 58 }
aqua { set width 51 }
}
$tbl configure -width $width
$sa setwidget $tbl
#
# Populate the tablelist widget
#
set itemList {}
for {set row 0} {$row < 2} {incr row} {
set item {}
for {set col 0} {$col < 10} {incr col} {
lappend item "header cell $row,$col"
}
lappend itemList $item
}
$tbl header insertlist end $itemList
set itemList {}
for {set row 0} {$row < 100} {incr row} {
set item {}
for {set col 0} {$col < 10} {incr col} {
lappend item "body cell $row,$col"
}
lappend itemList $item
}
$tbl insertlist end $itemList
#
# Create a ttk::button widget outside the scrollarea
#
set b [ttk::button $f.b -text "Close" -command exit]
pack $b -side bottom -pady {0 7p}
#
# Manage the scrollarea
#
pack $sa -expand yes -fill both -padx 7p -pady 7p
pack $f -expand yes -fill both
|