可以使用GUI与littler?

时间:2015-09-21 23:51:17

标签: linux r gwidgets rscript

我想使用Rscriptlittler编写带有简单GUI的小脚本。 在示例中,我使用gWidget2RGtk2

例如,helloworld.R

#!/usr/bin/r
library(gWidgets2RGtk2)

W <- gwindow("Window", visible=FALSE)
L <- glabel("Hello World!", container=W)

visible(W) <- TRUE

如果它在R会话中运行,则运行良好,但从shell运行时会出错:

Error in UseMethod(".gwindow") : 
no applicable method for '.gwindow' applied to an object of class "NULL"

对于图形,我知道在使用X11()之前需要plot()

是否可以修复此脚本以允许来自shell的渲染小部件?

(我只需要在linux机器上运行脚本)

编辑:这是一个适用于Linux的示例。 (包括答案​​和评论中收到的建议。)

#!/usr/bin/r
require(RGtk2) # required for gtkMain()
require(gWidgets2) 
options(guiToolkit="RGtk2")

W <- gwindow("Window", visible=FALSE, 
  handler = function(h, ...) {
    gtkMainQuit() # stop main loop when windows is closed.
  }
)
L <- glabel("Hello Word!", container=W)
visible(W) <- TRUE

gtkMain() # start main loop to keep the script alive.

1 个答案:

答案 0 :(得分:1)

是的,我过去曾这样做过。您必须确保运行GUI事件循环以通过等待使应用程序保持活动状态。