R 如何从gwidgets中的函数返回值
我有以下代码来选择输入和输出文件夹的目录R 如何从gwidgets中的函数返回值,r,gwidgets,R,Gwidgets,我有以下代码来选择输入和输出文件夹的目录 require(gWidgets2RGtk2) input=NULL win = gwindow("Stage 1") g = ggroup(horizontal=FALSE,cont=win) g1=ggroup(cont=g) svalue(input)<-gbutton("Input folder",cont=g1,expand=TRUE,handler=function(...) { input=gfile(typ
require(gWidgets2RGtk2)
input=NULL
win = gwindow("Stage 1")
g = ggroup(horizontal=FALSE,cont=win)
g1=ggroup(cont=g)
svalue(input)<-gbutton("Input folder",cont=g1,expand=TRUE,handler=function(...) {
input=gfile(type="selectdir")
gmessage(paste0("Input directory set to ",input))
input
})
g2=ggroup(cont=g)
gbutton("Ouput folder",cont=g2,expand=TRUE,handler=function(...) {
output=gfile(type="selectdir")
gmessage(paste0("Output directory set to ",output))
})
require(gWidgets2RGtk2)
输入=空
win=gwindow(“第一阶段”)
g=g组(水平=FALSE,连续=win)
g1=g组(续=g)
svalue(input)为了详细说明我的评论,下面是一个使用环境和的示例,处理程序是异步调用的,因此它们实际上没有有意义的返回值。相反,您必须将该值分配给函数体中的变量。此分配需要在处理程序的作用域之外进行,因此需要通过环境
require(gWidgets2)
options(guiToolkit="RGtk2")
input <- NULL # global
e <- new.env() # environment
win = gwindow("Stage 1")
g = ggroup(horizontal=FALSE,cont=win)
gbutton("Input folder",cont=g,handler=function(...) {
value <- gfile(type="selectdir")
gmessage(paste0("Input directory set to ",value))
## assign via <<-
input <<- value
## assign to an environment
e$input <- value
})
gbutton("What is stored?", cont=g, handler=function(...) {
print(sprintf("The global variable has %s", input))
print(sprintf("The environment stores %s", e$input))
})