Guest User

Untitled

a guest
Apr 30th, 2019
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. TEST_GUI = function() {
  2. library(tcltk2)
  3. win1 <- tktoplevel()
  4. win1$env$rb1 <- tk2radiobutton(win1)
  5. win1$env$rb2 <- tk2radiobutton(win1)
  6. win1$env$rb3 <- tk2radiobutton(win1)
  7. rbValue <- tclVar("PANDA")
  8.  
  9. tkconfigure(win1$env$rb1, variable = rbValue, value = 1)
  10. tkconfigure(win1$env$rb2, variable = rbValue, value = 2)
  11. tkconfigure(win1$env$rb3, variable = rbValue, value = 3)
  12. tkgrid(
  13. tk2label(win1, text = "現在要執行的功能?"),
  14. columnspan = 2,
  15. padx = 10,
  16. pady = c(10, 5)
  17. )
  18. tkgrid(tk2label(win1, text = "建模"),
  19. win1$env$rb1,
  20. padx = 10,
  21. pady = c(0, 5))
  22. tkgrid(tk2label(win1, text = "校正"),
  23. win1$env$rb2,
  24. padx = 10,
  25. pady = c(0, 5))
  26. tkgrid(tk2label(win1, text = "分析"),
  27. win1$env$rb3,
  28. padx = 10,
  29. pady = c(0, 5))
  30.  
  31. onOK <- function() {
  32. rbVal <<- as.character(tclvalue(rbValue)) ###### 使用 <<- 讓 rbVal 存在於 onOK 之外而 TEST_GUI 之內
  33. tkdestroy(win1)
  34. }
  35.  
  36. win1$env$butOK <-
  37. tk2button(win1,
  38. text = "OK",
  39. width = -6,
  40. command = onOK)
  41. tkgrid(
  42. win1$env$butOK,
  43. columnspan = 2,
  44. padx = 10,
  45. pady = c(5, 15)
  46. )
  47. tkfocus(win1)
  48. tkwait.window(win1) ###### 結束前必須先tkwait.window()
  49. return(rbVal) ###### 把 rbVal 傳出去
  50. }
  51.  
  52.  
  53. a <- TEST_GUI()
  54. str(a)
Advertisement
Add Comment
Please, Sign In to add comment