如何使用gWidgets2RGtk2在r中制作反应式组合框

时间:2015-05-13 01:27:15

标签: r combobox gwidgets

对于我的GUI,我想要2个组合框。

组合框1显示部门

组合框2显示来自combobox1

的所选部门中的项目

因此,如果用户在第一个组合框中选择“电子”作为部门,则应为第二个组合框选择 productElectronics ,否则应选择 productArts

library(gWidgets2RGtk2)
deptnames <- c("Arts","Electronics")
productArts <- c("Beads","Crayons")
productElectronics <- c("iPad","Apple Watch")

a1 <-c()
w <- gwindow("combobox example")
gp <- ggroup(horizontal = FALSE,container=w)
dept <- gcombobox(deptnames, container = gp )

items <- gcombobox(a1, container = gp ,
               handler = function(h,...){
                # oldval <- svalue(dept)
                 if (svalue(dept) == "Arts")
                 {
                   a1 <- productArts
                 }
                 if(svalue(dept) == "Electronics")
                 {
                   a1 <- productElectronics                      
                 }
               }
)

对于上面的代码,没有任何内容填充在department combobox中选择的任何值

1 个答案:

答案 0 :(得分:0)

您应该在deptnames组合框上放置一个处理程序来更新items组合框。您可以使用items[] <- ...变更要选择的项目,并使用svalue(items, index=true) <- ...指定所选项目。这些将基于当前选定的deptnames值,该值可通过svalue(deptnames)获得。希望有所帮助...