Rでgwidgetsパッケージを使用してGUIを作成しています。ユーザーが1つのリストから多数の変数を選択し、それらを空のリストにドラッグして収集できるようにするツールを実装しています。インスピレーションはSPSSからのGUIです。リンクを参照してください。
私はこれを2つのgtableで行うことを計画していました。つまり、最初に変数のリストを使用して1つのgtableを作成し、選択した変数を収集するために空のgtableを作成しました。以下は私のサンプルコードです:
portfolioBuilder <- function(h,...){
## globals
widgets <- list()
varNames <- c("var1","var2","var3","var4" )#with(.GlobalEnv, names(data))
#window
win <- gwindow("Test")
#groups
g <- ggroup(horizontal = FALSE, container = win, expand = TRUE)
gg <- ggroup(horizontal = FALSE, container = win, expand = TRUE)
#graphics container
ggraphics(container = gg)
#paned group
pg <- gpanedgroup(container = g, expand = TRUE)
nb <- gnotebook(container = pg)
## main group
qpg <- ggroup(horizontal = FALSE, container = nb, label = "portfolio")
parg <- ggroup(horizontal = FALSE, container = nb, label = "portfolio args")
## qplot group
tbl <- glayout(container = qpg)
#variable list
tbl[1,1,anchor = c(1,0)] <- "Variables"
tbl[2:10,2] <- (widgets[["table"]] <- gtable(varNames, multiple = TRUE, container = tbl, expand = TRUE))
tbl[3,3, anchor = c(1,0)] <- "y"
tbl[3,4] <- (widgets[["y"]] <- gedit("", container = tbl))
tbl[4,3, anchor = c(1,0)] <- "x"
tbl[4,4] <- (widgets[["x"]] <- gtable(c(""),container = tbl))
## make table visible and set tab
visible(tbl) <- TRUE
svalue(nb) <- 1
##################################end layout#################################
}
ただし、サンプルコードでは、gtableウィジェットが空であるためにエラーが発生します。誰かがgwidgetsでこれを達成する方法を知っていますか?