On Thu, Jun 25, 2009 at 8:29 AM, Bryan Hanson <han...@depauw.edu> wrote:

> 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)


The above code should "define" the gcheckboxgroup.

>
> > add(tmp, value = 1, expand = TRUE)


I'm not sure what you are trying to add here.


>
> 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) }



In the above handler, do you mean to pass the 'index' parameter to the
svalue() function?


>
>
> # 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.
>

        [[alternative HTML version deleted]]

______________________________________________
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.

Reply via email to