Я говорил с Джоном Верзани, создателем пакетов gWidgets *, и ответ невероятно прост (хотя и не совсем интуитивен). Вы получаете доступ к содержимому виджетов типа списка с помощью widget_name[]
.
library(gWidgets)
library(gWidgetstcltk)
get_list_content <- function() ls(envir = globalenv()) # or whatever
win <- gwindow()
grp <- ggroup(container = win)
ddl <- gdroplist(get_list_content(), container = grp)
refresh <- gimage("refresh",
dirname = "stock",
container = grp,
handler = function(h, ...) ddl[] <- get_list_content()
)
Обратите внимание, что существуют некоторые ограничения: списки переключателей должны оставаться одинаковой длины.
win <- gwindow()
rb <- gradio(1:10, cont = win)
rb[] <- 2:11 # OK
rb[] <- 1:5 # Throws an error; can't change length.