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:>
> Hello companions!!!
>
> I have a function that creates a Radio Buttons, and I need that this
> function return the selected value in the Radio Buttons. I would like that,
> if somebody know as I could return the value, you say me as do it.
>
> Next, I show the function
>
>
> 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;
> 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!")
> 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)
> #return(value)
> }
>
>
>
>
> Thanks in advance!
> A greetings Luismi
> --
> View this message in context:
http://www.nabble.com/Radio-Buttons-or-similars-tp16164495p16164495.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>