通过脚本运行用R编写的GUI

时间:2018-01-11 16:05:11

标签: r user-interface interactive

我使用R中的tcltk包编写了一个小的图形用户界面。我现在想让用户通过运行脚本来启动界面,而不必使用RStudio或命令行,只需双击脚本图标(在Windows中)。但是我在这方面遇到了一些问题。

使用Rscript.exe运行它会启动非交互式R会话,我想我需要一个交互式会话。所以我试过了:

echo source("GUI.R") | R.exe --ess --vanilla

GUI.R文件中的R命令interactive()现在确实返回TRUE,但GUI窗口仍然只会弹出并在之后立即关闭。 之后暂停脚本无济于事。

有谁知道如何正确地做到这一点?或者如果可能的话?

1 个答案:

答案 0 :(得分:0)

我知道这是一条旧消息,但是我不得不回答。我一直在寻找解决类似问题的方法,但是这些方法都无济于事。问题在于RScript.exe,Rcmd.exe等不是交互式的,对此您无能为力。

我在使用Rscript.exe运行的文件的最后(我正在使用tlctk2)使用tkwait.window()解决了该问题。

请确保没有if(interactive())例程,因为Rscript.exe不是交互式的,因此会将FALSE返回给Interactive()。

结果简单有效。使用tcl / tk GUI创建的窗口将保持运行状态,直到通过tkdestroy()或仅通过关闭窗口将其销毁为止。

#usage
require(tcltk2)
#Your script
MyMainWindow<<-tktoplevel()
#Your script
tkwait.window(MyMainWindow)
#END