[英]R gwidgets: Dynamic update of gcheckboxgroup with change in gcombobox input
[英]Saving selected values in gcheckboxgroup in R?
以下R腳本是使用gWidgets的簡單GUI。
我想知道為什么這段代碼不能將用戶選擇的值保存在gcheckboxgroup中。
#### Clear the Global Environment:
rm(list=ls())
library(rattle)
library(RGtk2)
library(gWidgets)
library(tcltk)
library(lubridate)
w <- gwindow("checkbox example")
gp <- ggroup(container=w)
codes = c(
"1000 F",
"0100 Q",
"0010 M",
"0001 s")
cbg <- gcheckboxgroup(codes, cont=w)
selected_codes <- paste(svalue(cbg))
ff <- function(h,...)
selected_codes <- svalue(cbg)
obj_run <- gbutton("Run", container=w, handler = ff)
感謝jverzani的評論。 但是,這不是解決方案。
實際上,通過單擊GUI中的“運行”按鈕,我們可以將selected_code為R存儲器。 但是由於它在函數/處理程序內部,因此無法保存。 因此,我們需要使用以下代碼將其保存(寫入)到文件(例如.txt)中:
rm(list=ls())
library(rattle)
library(RGtk2)
library(gWidgets)
library(tcltk)
library(lubridate)
w <- gwindow("checkbox example")
gp <- ggroup(container=w)
codes = c(
"1000 F",
"0100 Q",
"0010 M",
"0001 s")
cbg <- gcheckboxgroup(codes, cont=w)
obj_run <- gbutton("Run", container=w, handler = function (h ,...){
selected_codes <- paste0(svalue(cbg))
write(selected_codes, file = "selected_codes.txt",
ncolumns = if(is.character(selected_codes)) 1 else 1,
append = FALSE, sep = " ")
})
試試這個,它麻煩更少:
library(gWidgets2)
w <- gwindow("checkbox example")
gp <- ggroup(container=w)
codes = c(
"1000 F",
"0100 Q",
"0010 M",
"0001 s")
g <- ggroup(cont=w, horizontal=FALSE)
cbg <- gcheckboxgroup(codes, cont=g)
selected_codes <- paste(svalue(cbg))
ff <- function(h,...) {
selected_codes <<- svalue(cbg)
}
obj_run <- gbutton("Run", container=g, handler = ff)
(由於包裝容器,您可能遇到了問題。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.