Skip to content

Radio Buttons or similars

4 messages · ermimi, Gabor Grothendieck

#
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
#
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:
#
Sorry, also uncomment your commented lines so its like this:

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 9:04 PM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote:
#
Just one other item.  See:
http://www.sciviews.org/_rgui/tcltk

You can probably answer most of these questions yourself
if you find the right example there.

On Wed, Mar 19, 2008 at 9:07 PM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote: