Skip to content
Prev 139930 / 398502 Next

Radio Buttons or similars

Use tkwait.variable(done) to wait until tcl variable done turns non zero.
I've changed the lines marked ###.  Also see:
http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/OKCancelDialog.html

function1<-function(){
       require(tcltk)
       tt <- tktoplevel()
       rb1 <- tkradiobutton(tt)
       rb2 <- tkradiobutton(tt)
       rbValue <- tclVar("oranges")
       tkconfigure(rb1,variable=rbValue,value="apples")
       tkconfigure(rb2,variable=rbValue,value="oranges")
       tkgrid(tklabel(tt,text="Which do you prefer?"))
       tkgrid(tklabel(tt,text="Apples "),rb1)
       tkgrid(tklabel(tt,text="Oranges "),rb2)
       value<-0;
       done <- tclVar(0) ###
       aux_function<- function()
       {
           rbVal <- as.character(tclvalue(rbValue))
           # tkdestroy(tt) ###
           if (rbVal=="apples")
               tkmessageBox(message="Good choice!  An apple a day
keeps the doctor
away!")
           if (rbVal=="oranges")
               tkmessageBox(message="Good choice!  Oranges are full of
Vitamin C!")
           tclvalue(done) <- 1 ###
           print(rbVal);
           return(rbVal);
       }
       OK.but <- tkbutton(tt,text="OK",command=function() aux_function())
       #OK.but <- tkbutton(tt,text="OK",command=function()
value<<-aux_function())

       tkgrid(OK.but)
       tkfocus(tt)
       tkwait.variable(done) ###
       tkdestroy(tt) ###
       #return(value)
       }
On Wed, Mar 19, 2008 at 7:50 PM, ermimi <ermimi_ at hotmail.com> wrote: