3
我嘗試使用Tcl Widget對話框調用簡單函數 - 將x,y和z加起來,並在控制檯中顯示結果,並帶有一個消息框(「done!」 ) - 但我丟失了一個與變量的東西,並沒有能做到的消息框..使用R Tcl/Tk簡單對話框
mydialog <- function(){
myfun <- function(x,y,z) x+y+z
xvar <- tclVar("1")
yvar <- tclVar("2")
zvar <- tclVar("3")
tt <- tktoplevel()
tkwm.title(tt,"MYTEST")
x.entry <- tkentry(tt, textvariable=xvar)
y.entry <- tkentry(tt, textvariable=yvar)
z.entry <- tkentry(tt, textvariable=zvar)
reset <- function()
{
tclvalue(xvar)<-""
tclvalue(yvar)<-""
tclvalue(zvar)<-""
}
reset.but <- tkbutton(tt, text="Reset", command=reset)
x <- tclvalue(xvar)
y <- tclvalue(yvar)
z <- tclvalue(zvar)
submit.but <- tkbutton(tt, text="submit", command=function() substitute(myfun(x,y,z)))
tkgrid(tklabel(tt,text="MYTEST"),columnspan=2)
tkgrid(tklabel(tt,text="x variable"), x.entry)
tkgrid(tklabel(tt,text="y variable"), y.entry)
tkgrid(tklabel(tt,text="z variable"), z.entry)
tkgrid(submit.but, reset.but)
}
mydialog()
非常感謝!我編輯了我的帖子,在那裏我忘了粘貼myfun的def ..(同時我知道替代品(..)在這個地方完全錯了。) – Kay 2012-08-08 22:19:14
歡迎!也許'do.call(myfun,list(x,y,z))'是你正在尋找的東西。 – 2012-08-08 22:30:58