gpt4 book ai didi

r - 从 tcltk 函数中获取数据

转载 作者:行者123 更新时间:2023-12-04 17:50:49 27 4
gpt4 key购买 nike

这可能很简单,当答案回来时我会畏缩,但我完全被难住了。我尝试过手册,尝试搜索网络,各种示例以及我能想到的任何其他内容。我还是卡住了。

我正在尝试为用户创建一个简单的输入以添加两个值,然后我可以在 R 脚本的其余部分中使用。我需要脚本暂停并等待用户的输入,然后在获得输入后继续(例如选择文件功能的工作方式)。在阅读了一堆东西之后,我决定使用库(tcltk)。我在一个函数中有一个漂亮的小盒子。

inputs <- function(){

xvar <- tclVar("")
yvar <- tclVar("")

tt <- tktoplevel()
tkwm.title(tt,"Input Numbers")
x.entry <- tkentry(tt, textvariable=xvar)
y.entry <- tkentry(tt, textvariable=yvar)

reset <- function()
{
tclvalue(xvar)<-""
tclvalue(yvar)<-""
}

reset.but <- tkbutton(tt, text="Reset", command=reset)

submit <- function() {
x <- as.numeric(tclvalue(xvar))
y <- as.numeric(tclvalue(yvar))
print(x)
print(y)
tkdestroy(tt)
}
submit.but <- tkbutton(tt, text="submit", command=submit)

tkgrid(tklabel(tt,text="Enter Two Inputs"),columnspan=2)
tkgrid(tklabel(tt,text="Input1"), x.entry, pady = 10, padx =10)
tkgrid(tklabel(tt,text="Input2"), y.entry, pady = 10, padx =10)
tkgrid(submit.but, reset.but)

}

当我输入:
 inputs()

漂亮的小框弹出,我可以输入我的值,在这个例子中说 3 和 4。

我回来了
<Tcl>  
[1] 3
[1] 4

我想在 R 代码的后续部分中使用这些数字。我如何获得它们,以便获得与此等效的东西?
input1 <- 3
input2 <- 4

提前感谢您的帮助。

最佳答案

这是您的功能的修改:

inputs <- function(){

xvar <- tclVar("")
yvar <- tclVar("")

tt <- tktoplevel()
tkwm.title(tt,"Input Numbers")
x.entry <- tkentry(tt, textvariable=xvar)
y.entry <- tkentry(tt, textvariable=yvar)

reset <- function()
{
tclvalue(xvar)<-""
tclvalue(yvar)<-""
}

reset.but <- tkbutton(tt, text="Reset", command=reset)

submit <- function() {
x <- as.numeric(tclvalue(xvar))
y <- as.numeric(tclvalue(yvar))
e <- parent.env(environment())
e$x <- x
e$y <- y
tkdestroy(tt)
}
submit.but <- tkbutton(tt, text="submit", command=submit)

tkgrid(tklabel(tt,text="Enter Two Inputs"),columnspan=2)
tkgrid(tklabel(tt,text="Input1"), x.entry, pady = 10, padx =10)
tkgrid(tklabel(tt,text="Input2"), y.entry, pady = 10, padx =10)
tkgrid(submit.but, reset.but)

tkwait.window(tt)
return(c(x,y))
}

现在运行如下函数:
myvals <- inputs()

现在输入您的 2 个值并单击“提交”,然后查看 myvals变量,它包含您的 2 个值。

关于r - 从 tcltk 函数中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16847621/

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