tcltk R - как получить доступ к значению, возвращаемому функцией
Я только начал с tcltk
а также R
, И у меня возникают проблемы с доступом к вычисленному значению с помощью функции под названием myFun1
при вызове второй функции myFun2
:
Вот упрощенная версия моего пользовательского интерфейса:
Простой интерфейс tcltk
library(tcltk)
tt <- tktoplevel()
topMenu <- tkmenu(tt)
tkconfigure(tt, menu = topMenu)
fileMenu <- tkmenu(topMenu, tearoff = FALSE)
tkadd(fileMenu, "command", label = "Function1", command = myFun1)
tkadd(fileMenu, "command", label = "Function2", command = myFun2)
tkadd(topMenu, "cascade", label = "Tab", menu = fileMenu)
tkfocus(tt)
Мои функции
myFun1 <- function() {
compVal <- 2*3
compVal
}
myFun2 <- function() {
msg <- paste("The value is: \n", compVal )
mbval<- tkmessageBox(title="This is the title",
message=msg,type="yesno",icon="question")
}
призвание myFun1
работает, но myFun2
возвращается
Ошибка в вставке ("Значение: \n", compVal): объект "compVal" не найден
Также упаковка compVal
в return(compVal)
не работает Я также думал о том, чтобы сделать:
res <- list(compVal=compVal)
но я не могу получить доступ к созданному списку с myFun2
, Любые предположения о том, как получить доступ к форме возвращаемого значения myFun1
внутри myFun2
?
1 ответ
Я нашел решение, сначала я подумал, что это не совсем "чистый" способ сделать это, но даже в официальной документации это делается именно так. Просто создайте глобальную переменную, используя <<-
:
myFun1 <- function() {
compVal <<- 2*3
}