[R-gui] Process control in gWidgets

Hana Sevcikova hana at cs.washington.edu
Mon Aug 10 00:03:46 CEST 2009


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.

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



More information about the R-SIG-GUI mailing list