Hi All... I¹m trying to build a small demo using gWidgets which permits interactive scaling and selection among different things to plot. I can get the widgets for scaling to work just fine. I am using gcheckboxgroup to make the (possibly multiple) selections. However, I can¹t seem to figure out how to properly define the gcheckboxgroup; I can draw the widget properly, I think my handler would use the svalue right if it actually received it. Part of the problem is using the index of the possible values rather than the values themselves, but I'm pretty sure this is not all of the problem. I've been unable to find an example like this in any of the various resources I've come across.
BTW, report.which is really only there for troubleshooting. It works to return the values, I can't get it to return the indices, which are probably what I need in this case. A demo script is at the bottom and the error is just below. > tmp <- gcheckboxgroup(stuff, handler = report.which, index = TRUE, + checked = c(TRUE, FALSE, FALSE, FALSE, FALSE), container = leftPanel) > add(tmp, value = 1, expand = TRUE) Error in function (classes, fdef, mtable) : unable to find an inherited method for function ".add", for signature "gCheckboxgroupRGtk", "guiWidgetsToolkitRGtk2", "numeric" This error suggests that I don't have a method - I agree, but I don't know what goes into the method for gcheckboxgroup. For the sliders, it's clear to me how the actions and drawing of the widgets differ, but not so for gcheckboxgroup. A big TIA, Bryan ************* Bryan Hanson Professor of Chemistry & Biochemistry DePauw University, Greencastle IN USA Full Script: x <- 1:10 y1 <- x y2 <- x^2 y3 <- x^0.5 y4 <- y^3 df <- as.data.frame(cbind(x, y1, y2, y3, y4)) stuff <- c("y = x", "y = x^2", "y = x^0.5", "y = x^3") which.y <- 2 # inital value, to be changed later by the widget # Define a function for the widget handlers update.Plot <- function(h,...) { plot(df[,1], df[,svalue(which.y)], type = "l", ylim = c(0, svalue(yrange)), main = "Interactive Selection & Scaling", xlab = "x values", ylab = "y values") } report.which <- function(h, ...) { print(svalue(h$obj), index = TRUE) } # Define the actions & type of widget, along with returned values. # Must be done before packing widgets. yrange <- gslider(from = 0, to = max(y), by = 1.0, value = max(y), handler = update.Plot) which.y <- gcheckboxgroup(stuff, handler = report.which, index = TRUE, checked = c(TRUE, FALSE, FALSE, FALSE, FALSE)) # Assemble the graphics window & groups of containers mainWin <- gwindow("Interactive Plotting") bigGroup <- ggroup(cont = mainWin) leftPanel <- ggroup(horizontal = FALSE, container = bigGroup) # Format and pack the widgets, & link to their actions/type tmp <- gframe("y range", container = leftPanel) add(tmp, yrange, expand = TRUE) tmp <- gcheckboxgroup(stuff, handler = report.which, index = TRUE, checked = c(TRUE, FALSE, FALSE, FALSE, FALSE), container = leftPanel) add(tmp, value = 1, expand = TRUE) # Put it all together add(mainWin, ggraphics()) # puts the active graphic window w/i mainWin ______________________________________________ R-help@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.