我是 R 世界的新手,在使用 gWidgets 时遇到了一些困难,我希望有人可以帮助我。首先,我的 R 版本是 2.15.2。,我使用的是 Windows 7 32 位。
我想创建一个带有输入/输出和选择(是,否)的 GUI,所以如果用户选择(使用渐变)“是”,将显示一组额外的参数,如果“否”,那么它应该消失(这些参数),或灰显。最后,如果用户单击确定按钮,那么它将传递一些参数,这些参数将用于(稍后)调用另一个函数。以下是我的问题:
- 您是否知道当用户选择“否”时如何删除参数,现在,如果我单击“否”,它会打印我想要的内容,但是当我再次单击“是”时,它会显示另外三个参数。
- 你知道当用户单击“确定”时我如何传递参数吗,这是为了稍后单击确定时,它将调用(或源)不同的r代码中的另一个函数
非常感谢您的所有帮助
塞萨尔
PS下面是我的代码:
require(gWidgets)
options("guiToolkit"="RGtk2")
#options(expressions=500000)
w <- gwindow("")
g <- ggroup(horizontal = FALSE, container = w)
glabel("Input/Output", container = g)
inputFileDir <- gfilebrowse (text = "Select file...", type = "open", quote = FALSE,
filter = list("Text File" = list(patterns = c("*.txt"))), container = g)
svalue(inputFileDir)
outputFileDir <- gfilebrowse (text = "Input file name...", type = "save", quote = FALSE,
filter = list("Text File" = list(patterns = c("*.txt"))), container = g)
svalue(outputFileDir)
glabel("Direction?", container = g)
DirSelec <- c("Yes","No")
rbF <- function(h,...){
if (svalue(h$obj, index=TRUE) == 1){
print ( "define handler here" )
glabel("Meridional (Raster file):", container = g)
fieldConstrainDir_v <- gedit("", container = g, default = 0)
svalue(fieldConstrainDir_v)
glabel("Zonal (Raster file):", container = g)
fieldConstrainDir_u <- gedit("", container = g, default = 0)
svalue(fieldConstrainDir_u)
glabel("Max. Angle:", container = g)
maxAng <- gedit("", width = 3, initial.msg = "Paste the path to the raster file (no extensions)", default = 0, container = g)
svalue(maxAng)
}else {
#(svalue(h$obj, index=TRUE) == 2)
print ( "When User click NO, it needs to go or gray out" )
}
}
rb <- gradio(DirSelec, container = g)
selected = svalue(rb, index=TRUE) <- 2
rbH <- addHandlerClicked(rb, handler = rbF)
bg <- ggroup(container = g)
addSpring(bg)
onOK <- function(h,...){
print(svalue(inputFileDir))
#chartr("\\", "/", print(svalue(inputFileDir)))
print(svalue(outputFileDir))
print(svalue(fieldConstrainDir_v))
print(svalue(fieldConstrainDir_u))
print(svalue(maxAng))
}
gbutton(" OK ", container = bg, handler = onOK)
gbutton(" Cancel ", container=bg, handler = function(h,...) dispose(w))