A progress 'dial' done via canvas widget. FROM: http://wiki.tcl.tk/9621 (imaged on 2009 mar 19) # build canvas .c -width 50 -height 50 -highlightt 0 .c create oval 2 2 48 48 -tags t1 -fill red -outline "" .c create arc 2 2 48 48 -tags t2 -fill green -extent 0 -outline "" .c create text 25 25 -tags t3 pack .c -padx 60 -pady 5 proc run {percent} \ { .c itemconfig t3 -text $percent% .c itemconfig t2 -extent [expr {round($percent * 3.6)}] } # run focus -force .c raise .c for {set i 0} {$i <= 100} {incr i} \ { run $i after 100 update } .c itemconfig t1 -fill green