是否可以将 GUI 与 littler 一起使用?
Is possible to use GUI with littler?
我想使用 Rscript
或 littler
编写带有简单 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.
是的,我过去也这样做过。你必须确保你有一个 GUI 事件循环 运行 通过等待让应用程序保持活跃。
我想使用 Rscript
或 littler
编写带有简单 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.
是的,我过去也这样做过。你必须确保你有一个 GUI 事件循环 运行 通过等待让应用程序保持活跃。