如何等待用户在gWidgets2RGtk2的组合框中输入值?

时间:2016-09-01 21:18:52

标签: r user-interface gwidgets

我想要一个用户输入,然后根据该输入来源文件。 R代码在不让用户选择任何内容的情况下执行,只执行下一个语句。

library(gWidgets2RGtk2)

w <- gwindow(title="Hello World",visible=TRUE)
g = ggroup(horizontal = FALSE, cont=w)
glabel("Please select your favorite subject", cont=g)
modeltype <- c("","Science","Math")
op1 <- gcombobox(modeltype, cont=g)

if (svalue(op1)=="Math"){
    source("Rscript1")
}else if (svalue(op1)=="Science"){
    source("Rscript2")
}else{
    source("Rscript3")
}

在关闭窗口之前,甚至从我的下拉列表中选择选项,它会自动将&#34;&#34; 作为值并转到else语句并运行 RScript3 。在获得用户输入之前,如何暂停执行。 感谢。

1 个答案:

答案 0 :(得分:1)

在组合框中选择项目时,将调用处理函数。这是你采取行动的地方:

addHandlerChanged(op1, handler=function(...){
    if (svalue(op1)=="Math"){
      source("Rscript1")
    }else if (svalue(op1)=="Science"){
      source("Rscript2")
    }else{
      source("Rscript3")
    }
})