使用gwidgets2创建停止按钮以中断Ubuntu上的运行功能

时间:2014-06-05 07:33:39

标签: r ubuntu gwidgets

我正在为一个R程序制作一个GUI,它可以进行一些非常冗长的计算,同时不断更新gwidgets GUI上的图。如果用户花费太长时间,我想给用户中断计算的可能性。我正在尝试使用停止按钮。

问题是当函数运行时,窗口显示为灰色,没有任何控件会响应,因此无法单击停止按钮。

只有在Ubuntu上运行程序时才会出现此问题,我在Windows上测试了脚本并且按预期工作。

这是我的代码的最小工作示例,说明了我要做的事情:

require(gWidgets2RGtk2)
require(gWidgets2)

stopsignal <- FALSE
w <- gwindow()
button_gp <- ggroup(cont=w)
gbutton("calculate", cont=button_gp, handler=function(...) calculate())
gbutton("stop", cont=button_gp, handler=
          function(...) assign("stopsignal", TRUE , envir = .GlobalEnv))

calculate <- function() {
  while(TRUE) { 
    #do something
    print("Hello World")
    if(stopsignal) break
  }
}

我试图理解为什么Ubuntu表现不同以及如何解决它。

0 个答案:

没有答案