/
opt
/
imh
/
python3.13
/
lib
/
tk8.6
/
demos
/
/opt/imh/python3.13/lib/tk8.6/demos
mkdir
upload
Name
Size
Mode
Actions
images/
-
0755
rm
anilabel.tcl
6670
0644
edit
dl
rm
aniwave.tcl
3494
0644
edit
dl
rm
arrow.tcl
8110
0644
edit
dl
rm
bind.tcl
3078
0644
edit
dl
rm
bitmap.tcl
1411
0644
edit
dl
rm
browse
1758
0755
edit
dl
rm
button.tcl
1504
0644
edit
dl
rm
check.tcl
2310
0644
edit
dl
rm
clrpick.tcl
1431
0644
edit
dl
rm
colors.tcl
5002
0644
edit
dl
rm
combo.tcl
1963
0644
edit
dl
rm
cscroll.tcl
5041
0644
edit
dl
rm
ctext.tcl
6205
0644
edit
dl
rm
dialog1.tcl
974
0644
edit
dl
rm
dialog2.tcl
828
0644
edit
dl
rm
en.msg
3867
0644
edit
dl
rm
entry1.tcl
1401
0644
edit
dl
rm
entry2.tcl
2106
0644
edit
dl
rm
entry3.tcl
6102
0644
edit
dl
rm
filebox.tcl
2351
0644
edit
dl
rm
floor.tcl
81000
0644
edit
dl
rm
fontchoose.tcl
1710
0644
edit
dl
rm
form.tcl
1046
0644
edit
dl
rm
goldberg.tcl
56666
0644
edit
dl
rm
hello
512
0755
edit
dl
rm
hscale.tcl
1497
0644
edit
dl
rm
icon.tcl
2063
0644
edit
dl
rm
image1.tcl
1002
0644
edit
dl
rm
image2.tcl
3359
0644
edit
dl
rm
items.tcl
10495
0644
edit
dl
rm
ixset
8075
0755
edit
dl
rm
knightstour.tcl
9123
0644
edit
dl
rm
label.tcl
1379
0644
edit
dl
rm
labelframe.tcl
1847
0644
edit
dl
rm
license.terms
2267
0644
edit
dl
rm
mclist.tcl
4357
0644
edit
dl
rm
menu.tcl
7292
0644
edit
dl
rm
menubu.tcl
4255
0644
edit
dl
rm
msgbox.tcl
1998
0644
edit
dl
rm
nl.msg
6750
0644
edit
dl
rm
paned1.tcl
1130
0644
edit
dl
rm
paned2.tcl
2244
0644
edit
dl
rm
pendulum.tcl
7649
0644
edit
dl
rm
plot.tcl
2757
0644
edit
dl
rm
puzzle.tcl
2603
0644
edit
dl
rm
radio.tcl
2752
0644
edit
dl
rm
README
2082
0644
edit
dl
rm
rmt
5319
0755
edit
dl
rm
rolodex
8303
0755
edit
dl
rm
ruler.tcl
5333
0644
edit
dl
rm
sayings.tcl
2273
0644
edit
dl
rm
search.tcl
4403
0644
edit
dl
rm
spin.tcl
1820
0644
edit
dl
rm
states.tcl
2048
0644
edit
dl
rm
style.tcl
6943
0644
edit
dl
rm
tclIndex
5298
0644
edit
dl
rm
tcolor
11253
0755
edit
dl
rm
text.tcl
4291
0644
edit
dl
rm
textpeer.tcl
2188
0644
edit
dl
rm
timer
1095
0755
edit
dl
rm
toolbar.tcl
3272
0644
edit
dl
rm
tree.tcl
3178
0644
edit
dl
rm
ttkbut.tcl
3405
0644
edit
dl
rm
ttkmenu.tcl
2391
0644
edit
dl
rm
ttknote.tcl
2317
0644
edit
dl
rm
ttkpane.tcl
4177
0644
edit
dl
rm
ttkprogress.tcl
1536
0644
edit
dl
rm
ttkscale.tcl
1420
0644
edit
dl
rm
twind.tcl
11654
0644
edit
dl
rm
unicodeout.tcl
4706
0644
edit
dl
rm
vscale.tcl
1477
0644
edit
dl
rm
widget
24064
0755
edit
dl
rm
Edit:
/opt/imh/python3.13/lib/tk8.6/demos/tree.tcl
(3178B)
# tree.tcl -- # # This demonstration script creates a toplevel window containing a Ttk # tree widget. if {![info exists widgetDemo]} { error "This script should be run from the \"widget\" demo." } package require Tk set w .tree catch {destroy $w} toplevel $w wm title $w "Directory Browser" wm iconname $w "tree" positionWindow $w ## Explanatory text ttk::label $w.msg -font $font -wraplength 4i -justify left -anchor n -padding {10 2 10 6} -text "Ttk is the new Tk themed widget set. One of the widgets it includes is a tree widget, which allows the user to browse a hierarchical data-set such as a filesystem. The tree widget not only allows for the tree part itself, but it also supports an arbitrary number of additional columns which can show additional data (in this case, the size of the files found in your filesystem). You can also change the width of the columns by dragging the boundary between them." pack $w.msg -fill x ## See Code / Dismiss pack [addSeeDismiss $w.seeDismiss $w] -side bottom -fill x ## Code to populate the roots of the tree (can be more than one on Windows) proc populateRoots {tree} { foreach dir [lsort -dictionary [file volumes]] { populateTree $tree [$tree insert {} end -text $dir \ -values [list $dir directory]] } } ## Code to populate a node of the tree proc populateTree {tree node} { if {[$tree set $node type] ne "directory"} { return } set path [$tree set $node fullpath] $tree delete [$tree children $node] foreach f [lsort -dictionary [glob -nocomplain -dir $path *]] { set f [file normalize $f] set type [file type $f] set id [$tree insert $node end -text [file tail $f] \ -values [list $f $type]] if {$type eq "directory"} { ## Make it so that this node is openable $tree insert $id 0 -text dummy ;# a dummy $tree item $id -text [file tail $f]/ } elseif {$type eq "file"} { set size [file size $f] ## Format the file size nicely if {$size >= 1024*1024*1024} { set size [format %.1f\ GB [expr {$size/1024/1024/1024.}]] } elseif {$size >= 1024*1024} { set size [format %.1f\ MB [expr {$size/1024/1024.}]] } elseif {$size >= 1024} { set size [format %.1f\ kB [expr {$size/1024.}]] } else { append size " bytes" } $tree set $id size $size } } # Stop this code from rerunning on the current node $tree set $node type processedDirectory } ## Create the tree and set it up ttk::treeview $w.tree -columns {fullpath type size} -displaycolumns {size} \ -yscroll "$w.vsb set" -xscroll "$w.hsb set" ttk::scrollbar $w.vsb -orient vertical -command "$w.tree yview" ttk::scrollbar $w.hsb -orient horizontal -command "$w.tree xview" $w.tree heading \#0 -text "Directory Structure" $w.tree heading size -text "File Size" $w.tree column size -width 70 populateRoots $w.tree bind $w.tree <<TreeviewOpen>> {populateTree %W [%W focus]} ## Arrange the tree and its scrollbars in the toplevel lower [ttk::frame $w.dummy] pack $w.dummy -fill both -expand 1 grid $w.tree $w.vsb -sticky nsew -in $w.dummy grid $w.hsb -sticky nsew -in $w.dummy grid columnconfigure $w.dummy 0 -weight 1 grid rowconfigure $w.dummy 0 -weight 1
Save
cmd:
run