R 弹出框在终端中运行时不起作用



我正在使用svDialogs(用于zenity的R包装库(来创建GUI弹出框,当我通过R studio或R终端会话(运行Ubuntu 16.04(运行代码时,这工作正常。

一个最小的例子是:

library(svDialogs)
dlgMessage("Hello Stackoverflow!")

但是,当我直接通过终端运行代码时,它不起作用:

Rscript --vanilla -e 'source("path/to/file.R")'

终端显示库已加载,并且不显示错误消息:但弹出窗口没有出现!如果我在调用 dlgMessage 之后添加一行,该行就会运行。即如果我运行修改后的代码

library(svDialogs)
dlgMessage("Hello Stackoverflow!")
print("Goodbye Stackoverflow!")

然后第二行确实显示在终端窗口中(即代码不会在 dlgMessage 处崩溃(。

如果有一个工作许可证,很高兴解决方案不依赖于dlgMessage:我以前尝试过使用system((通过R本机使用Zenity,但无法使其工作。

R 可以在交互或非交互模式下运行,默认值取决于是否假定存在人工操作员,请参阅交互式文档。

在非交互模式下运行时,R 不会显示任何弹出框。默认情况下,在终端中运行代码时,R 以非交互模式运行。按照上面的文档,这可以通过使用 linux 中的命令来覆盖

R --vanilla --interactive < "path/to/file.R"

同样,在Windows中使用--essRterm.exe

相关内容

  • 没有找到相关文章

最新更新