Hi Bill, > Hello R tcltk world: > After a month without success, I seek help. Perhaps one of you has the > knowledge to construct a checkbutton for each element of vector of > variable length, select any combination of buttons, and then output the > vector of selected buttons. The following code does not work:
Here's some code I threw together pretty quickly which I think does what you are asking for. You may find a more elegant way. Best wishes, James #################################################### Selected <- c() library(tcltk) Buttons <- c(2,5,7) tt <- tktoplevel() ButtonWidget <- list() ButtonVar <- list() for(i in 1:3) { ButtonName <- paste("B", Buttons[i], sep="") ButtonWidget[[i]] <- tkcheckbutton(tt) ButtonVar[[i]] <- tclVar("0") tkconfigure(ButtonWidget[[i]],text=ButtonName, variable=ButtonVar[[i]],indicatoron=0) tkpack(ButtonWidget[[i]]) } OK <- tkbutton(tt,text=" OK ", command=function() { Selected <<- c() for(i in 1:3) if(tclvalue(ButtonVar[[i]]) == "1") Selected <<- c(Selected, Buttons[i]) cat(paste(Selected,collapse=",")) cat("\n")}) tkpack(OK) #################################################### > > require(tcltk) > Buttons <- c(2,5,7) > tt <- tktoplevel() > for(i in 1:3) { > ButtonName <- as.name(paste("B", Buttons[i], sep="")) > ButtonName <- tkcheckbutton(tt) > ButtonValue <- as.name(paste("B", Buttons[i], "Value", sep="")) > ButtonValue <- tclVar("0") > tkconfigure(ButtonName, text=paste(Buttons[i]), variable=ButtonValue, > indicatoron=0) > tkpack(ButtonName) > } > OK <- tkbutton(tt,text="OK", command=function() { for(i in 1:3) { > if(as.character(tclvalue(paste("B",Buttons[i],"Value", sep=""))) == "1") > Selected <<- c(Selected, Buttons[i])}} ) > tkpack(OK) > Selecting any combination of checkbuttons results in the message "Error in > structure(.External("dotTclObjv", objv, PACKAGE = "tcltk"), class = > "tclObj") : [tcl] can't read "B2Value": no such variable." When the > evaluated results of as.name ... are entered interactively in place of the > loop with ButtonName and ButtonValue variables, the mini GUI works. How > would checkbutton names and checkbutton variable values generated in a > loop be correctly implemented? > Thanks, > Bill Morphet, Space shuttle analyst/USU PhD statistics student > > [[alternative HTML version deleted]] > > _______________________________________________ > R-SIG-GUI mailing list > R-SIG-GUI@stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/r-sig-gui > _______________________________________________ R-SIG-GUI mailing list R-SIG-GUI@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-gui