我是R world的新手,我在使用gWidgets時遇到一些困難,我希望有人能幫助我。首先我的R版本是2.15.2,而且我使用的是Windows 7 32位。R gWidgets刪除參數並傳遞參數
我想創建一個帶有輸入/輸出和選擇(是,否)的GUI,因此如果用戶選擇(使用gradio)「是」,將顯示一組額外的參數,如果「否」,則它應該消失(這些參數),或灰色。最後,如果用戶點擊確定按鈕,那麼它將傳遞一些參數(稍後將用於調用另一個函數)。 這裏是我的問題:
- 你有一個想法,我怎麼能刪除參數,當用戶選擇「否」,現在,如果我點擊沒有,它打印我想要的東西,但是當我點擊「是「,它會顯示另外三個參數。
- 你知道我可以傳遞參數,當用戶點擊「確定」,這是爲以後當單擊確定,它會調用(或源)在不同的R代碼中的另一個功能
很多感謝爲您提供所有幫助
Cesar
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))
非常感謝約翰(@jverzani),我會根據您的意見對其進行修改,但有一兩件事,當我試圖設置默認值(即fieldConstrainDir_v < - gedit(「」,container = g,default = 0))沒有傳遞值,我做錯了什麼? – Cesar 2013-02-18 23:30:22
您可能需要'gedit(「0」,container = g,coerce.with = as.numeric)'。沒有'default'參數。 (coerce.with函數是在svalue之前的字符串上調用的。) – jverzani 2013-02-19 01:46:00
嗨John(@jverzani),感謝您的幫助,我根據您的意見修改了代碼,並且能夠將參數傳遞到列表中,I因爲我需要單獨的參數,所以將它更改爲lapply。但是,我仍然感到困惑,無法根據我在gcombobox中的選擇來提取和分配變量名稱。更清楚的是,如果我選擇「Dis」,那麼我需要加載具有函數「Dis.r」的腳本,並選擇適當的參數,如果選擇「IDis」,然後加載並運行(使用適當的參數名稱)「IDis.r」代碼。這是代碼示例: – Cesar 2013-02-20 22:56:52