kkobayashi #7118(2008/08/13 10:20 GMT) [ R ] Rating0/0=0.00
R的にはちょっと難しいお題ですね。
キーイベントを取得するにはgetGraphicsEvent()という関数がありますが、実行中はR本体の処理がブロックされてしまって、肝心の"a"を出す処理が実行できないようです。
代わりにR TclTkを使うことにしました。相変わらずWindowsのRguiはコンソール入出力がよろしくないので、Rtermから実行してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
library(tcltk) tt <- tktoplevel() pause.flag <- FALSE quit.flag <- FALSE tkbind(tt, "<Key>", function(K){ switch(K, q = {quit.flag <<- TRUE; }, p = {pause.flag <<- !pause.flag} )}) repeat{ if(!pause.flag){ writeLines("a") } if(quit.flag){ tkdestroy(tt) quit(save="no") } Sys.sleep(1) }
Rating0/0=0.00-0+
[ reply ]
kkobayashi
#7118()
[
R
]
Rating0/0=0.00
R的にはちょっと難しいお題ですね。
キーイベントを取得するにはgetGraphicsEvent()という関数がありますが、実行中はR本体の処理がブロックされてしまって、肝心の"a"を出す処理が実行できないようです。
代わりにR TclTkを使うことにしました。相変わらずWindowsのRguiはコンソール入出力がよろしくないので、Rtermから実行してください。
library(tcltk) tt <- tktoplevel() pause.flag <- FALSE quit.flag <- FALSE tkbind(tt, "<Key>", function(K){ switch(K, q = {quit.flag <<- TRUE; }, p = {pause.flag <<- !pause.flag} )}) repeat{ if(!pause.flag){ writeLines("a") } if(quit.flag){ tkdestroy(tt) quit(save="no") } Sys.sleep(1) }Rating0/0=0.00-0+
[ reply ]