set seconds {}
set timetext 00:00:00
set id {}
ttk::label .time -textvariable timetext -font {Arial 32}
ttk::button .reset -text Reset -command reset
ttk::button .start -text Start -command {
reset
set seconds -1
setSeconds
}
proc setSeconds {} {
set ::id [after 1000 setSeconds]
incr ::seconds
}
proc reset {} {
if {$::id != {}} {
after cancel $::id
}
set ::id {}
set ::seconds 0
}
trace add variable seconds write updateTime
proc updateTime {args} {
set ::timetext [clock format $::seconds -gmt 7 -format %H:%M:%S]
}
pack .time .reset .start