我在R中使用gWidgets包创建了一个动态GUI (guiToolkit="RGtk2"如果重要的话)。我所说的动态是指在使用GUI时创建和删除表单元素。我想知道是否有一种简单的方法来保存当前GUI与所有当前表单元素和选择/类型的值,然后加载它以后。保存和加载工作空间似乎对这类事情不起作用,例如:
require (gWidgets)
options (guiToolkit="RGtk2")
win1 <- gwindow("Test")
svalue(win1) <- "Window 1"
win2 <- win1
svalue(win2) <- "Window 2"
visible(win1)=FALSE
visible(win2)=TRUE
工作得很好,你可以复制一个对象,它在其他变量名下继续工作。但是,当您保存工作空间并加载它时,当尝试执行最后2行时,您会得到一个错误"断言' GTK_IS_WIDGET (widget)'失败"。因此,load()函数不能正确地重新创建对象。
您可能使用某种数据结构来描述您的GUI,并结合基于该数据结构构建GUI的函数。我将使用save
保存此数据结构,允许您稍后执行load
,您可以在此基础上重建GUI。