У меня есть следующий код для выбора каталогов входных и выходных папок.Как вернуть значение из функции в 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(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))
})
Однако при запуске код не возвращает каталоги ввода и вывода папок. Может ли кто-нибудь показать мне, что я делаю неправильно здесь?
обработчики вызываются асинхронно, так что они на самом деле не имеют значимые возвращаемые значения. Скорее вы должны назначить значение переменной внутри тела функции. Это соответствие должно происходить вне сферы действия обработчика, так что это делается через среду, '<< -' или 'assign' – jverzani