1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #!/bin/sh
- # the next line restarts using wish \
- exec wish "$0" ${1+"$@"}
- # timer --
- # This script generates a counter with start and stop buttons.
- package require Tk
- label .counter -text 0.00 -relief raised -width 10 -padx 2m -pady 1m
- button .start -text Start -command {
- if {$stopped} {
- set stopped 0
- set startMoment [clock clicks -milliseconds]
- tick
- .stop configure -state normal
- .start configure -state disabled
- }
- }
- button .stop -text Stop -state disabled -command {
- set stopped 1
- .stop configure -state disabled
- .start configure -state normal
- }
- pack .counter -side bottom -fill both
- pack .start -side left -fill both -expand yes
- pack .stop -side right -fill both -expand yes
- set startMoment {}
- set stopped 1
- proc tick {} {
- global startMoment stopped
- if {$stopped} {return}
- after 50 tick
- set elapsedMS [expr {[clock clicks -milliseconds] - $startMoment}]
- .counter config -text [format "%.2f" [expr {double($elapsedMS)/1000}]]
- }
- bind . <Control-c> {destroy .}
- bind . <Control-q> {destroy .}
- focus .
- # Local Variables:
- # mode: tcl
- # End:
|