set choice red set index 0 set select on set list {red green blue white brown grey yellow} set len [llength $list] foreach i $list { radiobutton .$i -text $i -variable choice -value $i -bg grey77 pack .$i -side left -fill y } label .l -textvariable choice pack .l -side left -expand y -fill both proc tick {} { global choice index len list select if {"$select" == "on"} { set choice none set select off } else { set select on incr index if {$index == $len} { set index 0 } set choice [lindex $list $index] } after 1000 tick } tick