我使用R中的tcltk包编写了一个小型图形用户界面。我现在希望使用户能够通过运行脚本来启动界面,而不必使用RStudio或命令行,而只需双击脚本图标(在视窗)。但是我这样做有些问题。
使用Rscript.exe运行它会启动一个非交互式R会话,我想我需要一个交互式会话。所以我尝试了:
echo source("GUI.R") | R.exe --ess --vanilla
现在,GUI.R文件中的R命令Interactive()实际上返回TRUE,但是GUI窗口仍然仅弹出并随后立即关闭。之后暂停脚本无济于事。
有人知道该怎么做吗?还是完全有可能?
我使用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