Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add a popup text box within an R script using tcltk

Tags:

r

tk

I have a long-ish script to do some data analysis, and it has to connect to several databases. One of the databases tends to update my password more frequently than I like, so I'd like to add a popup box for me to enter my current password. I found this example but don't understand enough tcltk to see hwo to return my value when the dialog box is dismissed. I've thought of defining it as a global variable (<<-) within the OnOK function, but this seems messy

require(tcltk)
tt<-tktoplevel()
Name <- tclVar("Password")
entry.Name <-tkentry(tt,width="20",textvariable=Name)
tkgrid(tklabel(tt,text="Enter Password"))
tkgrid(entry.Name)
OnOK <- function()
{
    NameVal <- tclvalue(Name)
    tkdestroy(tt)
}
OK.but <-tkbutton(tt,text="   OK   ",command=OnOK)
tkbind(entry.Name, "<Return>",OnOK)
tkgrid(OK.but)
tkfocus(tt)
like image 376
PaulHurleyuk Avatar asked Jul 03 '12 13:07

PaulHurleyuk


1 Answers

You might find the ginput function of gWidgets wraps up what Greg Snow suggests for you:

require(gWidgets)
options(guiToolkit="tcltk") 
NameVal <- ginput("Enter your passsword:")

NameVal will contain the entered string or NA if you cancel.

like image 93
jverzani Avatar answered Sep 25 '22 06:09

jverzani