gpt4 book ai didi

R:构建一个简单的命令行绘图工具/捕获窗口关闭事件

转载 作者:行者123 更新时间:2023-12-02 02:34:04 26 4
gpt4 key购买 nike

我正在尝试在脚本中使用 R,该脚本将充当简单的命令行绘图工具。 IE。用户通过管道输入 csv 文件并得到一个绘图。我可以很好地使用 R 并通过各种临时文件机制来显示绘图,但我遇到了障碍。我不知道如何让 R 继续运行,直到用户关闭窗口。

如果我绘图并退出,绘图会立即消失。如果我绘制并使用某种无限循环,用户将无法关闭绘图;他必须使用我不喜欢的中断退出。我看到有一个 getGraphicsEvent 函数,但它声称不支持该设备(X11)。不管怎样,它似乎并不真正支持 onClose 事件,只支持 onMouseDown。

关于如何解决这个问题有什么想法吗?

编辑:感谢 Dirk 提供的检查 tk 界面的建议。这是我的有效测试代码:

require(tcltk)
library(tkrplot)

## function to display plot, called by tkrplot and embedded in a window
plotIt<-function(){ plot(x=1:10, y=1:10) }
## create top level window
tt<-tktoplevel()
## variable to wait on like a condition variable, to be set by event handler
done <- tclVar(0)
## bind to the window destroy event, set done variable when destroyed
tkbind(tt,"<Destroy>",function() tclvalue(done) <- 1)
## Have tkrplot embed the plot window, then realize it with tkgrid
tkgrid(tkrplot(tt,plotIt))
## wait until done is true
tkwait.variable(done)

最佳答案

您需要具有独特事件循环的东西 --- 最好的可移植解决方案是依赖(已包含的)tcltk 包。从它的演示开始。

最简单的情况可能是

> library(tcltk)
> tk_messageBox(message="Press a key")

会弹出一个框,您需要确认才能继续。

关于R:构建一个简单的命令行绘图工具/捕获窗口关闭事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3063165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com