set choice red set index 0 set list {red green blue white brown grey77 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 incr index if {$index == $len} { set index 0 } set choice [lindex $list $index] after 1000 tick } tick