[R-gui] Process control in gWidgets
Wayne.W.Jones at shell.com
Wayne.W.Jones at shell.com
Tue Aug 11 12:02:00 CEST 2009
Hi Hana,
I use the rpanel package to generate GUIs for R.
Here is an example of what you are trying to do with the rpanel package:
(p.s. make sure buffered output is switched off in the Rgui).
reallySlowFunction = function(panel,n=20) {
for(i in 1:n) {
cat("z")
Sys.sleep(0.5)
cat("\n")
}
return(panel)
}
library(rpanel)
# Create an rpanel and add the button "Simulate" to it.
panel <- rp.control()
rp.button(panel, action = reallySlowFunction, title = "Simulate")
Regards,
Wayne
-----Original Message-----
From: r-sig-gui-bounces at stat.math.ethz.ch
[mailto:r-sig-gui-bounces at stat.math.ethz.ch]On Behalf Of Hana Sevcikova
Sent: 11 August 2009 07:30
To: jverzani
Cc: r-sig-gui at stat.math.ethz.ch
Subject: Re: [R-gui] Process control in gWidgets
Thank you very much, John. I am indeed using gWidgetsRGtk2 but I was
hoping to make my GUI independent of the specific toolkit. But there is
probably no easy solution. Even with the gtkEventsPending() and
gtkMainIteration() I don't get the output into the R-console as the
computation runs, rather at the very end.
Please let me know if you get other ideas how to solve it.
Thanks,
Hana
jverzani wrote:
> Hana Sevcikova <hana <at> cs.washington.edu> writes:
>
>> Hello,
>>
>> I implemented a GUI (using gWidgets) from which I'd like to start a long
>> process by clicking a button. This process prints out status messages
>> which the user should be able to see in the R console during the
>> computation. But at the moment clicking the button freezes the GUI until
>> the process is finished and all output is printed at the end. Is there a
>> way how to do this? The process can take several hours and during that
>> time I need to make the GUI available for other tasks.
>>
>
> Dear Hana,
>
> This post was followed up with
> https://stat.ethz.ch/pipermail/r-help/2008-February/154249.html where a
> combination of gtkEventsPending() and gtkMainIteration() is used to update the
> GUI during a computation. This could work for you if a) you are using
> gWidgetsRGtk2 through gWidgets and b) you can add this within your long
> computation. If that doesn't work out, let me know.
>
> --John
>
>
>> I found a similar post on R-help from last year where John Verzani
>> posted the following test code:
>>
>> reallySlowFunction = function(n=20) {
>> for(i in 1:n) {
>> cat("z")
>> Sys.sleep(1) }
>> cat("\n")
>> }
>> w <- gwindow("test")
>> g <- ggroup(cont=w, horizontal=FALSE)
>> b <- gbutton("click me", cont=g,handler = function(h,...)
>> reallySlowFunction())
>> r <- gradio(1:3, cont=g, handler = function(h,...) print(svalue(h
>> $obj)))
>>
>> I cannot figure out why my GUI freezes and this one not but
>> here again, the output of reallySlowFunction is printed at the very end
>> after the process finishes. Would anybody know how to solve it?
>>
>> Thanks,
>>
>> Hana
>>
>
> _______________________________________________
> R-SIG-GUI mailing list
> R-SIG-GUI at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-gui
_______________________________________________
R-SIG-GUI mailing list
R-SIG-GUI at stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-gui
More information about the R-SIG-GUI
mailing list