3
여기 코드를 사용했습니다 : http://www.sciviews.org/_rgui/tcltk/Radiobuttons.html 사용자 질문.tcltk 라디오 버튼을 사용할 때 어떻게 R을 멈출 수 있습니까?
그러나 R은 사용자가 응답 할 때까지 기다리지 않습니다. 코드는 계속 실행되므로 응답을 사용하려고하는 후속 코드가 누락됩니다.
여기 내 전체 코드가 있습니다. testVal을 저장해야합니다 (대답입니다).
require(tcltk)
tt <- tktoplevel()
rb1 <- tkradiobutton(tt)
rb2 <- tkradiobutton(tt)
rb3 <- tkradiobutton(tt)
rb4 <- tkradiobutton(tt)
rb5 <- tkradiobutton(tt)
rbValue <- tclVar(NA)
tkconfigure(rb1,variable=rbValue,value=1)
tkconfigure(rb2,variable=rbValue,value=2)
tkconfigure(rb3,variable=rbValue,value=3)
tkconfigure(rb4,variable=rbValue,value=4)
tkconfigure(rb5,variable=rbValue,value=5)
tkgrid(tklabel(tt,text="What's your answer?"))
tkgrid(tklabel(tt,text="1"),rb1)
tkgrid(tklabel(tt,text="2"),rb2)
tkgrid(tklabel(tt,text="3"),rb3)
tkgrid(tklabel(tt,text="4"),rb4)
tkgrid(tklabel(tt,text="5"),rb5)
testVal <- NA
OnOK <- function()
{
rbVal <- tclvalue(rbValue)
tkdestroy(tt)
testVal <<- rbVal
print(rbVal)
#return(rbVal)
}
OK.but <- tkbutton(tt,text="OK",command=OnOK)
tkgrid(OK.but)
tkfocus(tt)
cat(testVal)
간단한 (멍청한) 해결책이 있습니다 :'cat (testVal)'앞에'if (! is.na (testVal)) 휴식'을 추가하십시오. –