[R-pkg-devel] develop package with lots of tcltk in it

Dalthorp, Daniel ddalthorp at usgs.gov
Wed May 11 21:56:04 CEST 2016


I have an R/tcltk application that is designed for use primarily by people
who don't know R and don't care to learn much about it. I'd like users to
be able to use the software with a bare minimum interaction with R.

Although the application has some 15000 lines of code in a couple dozen .R
files, in essence I don't think it's much more than an elaborate version of
the following:

library(tcltk)
tt <- tktoplevel() # a required container for tk objects (textboxes,
radiobuttons, data tables, etc.)
tk.x <- tclVar() # a tcl version of user variable x
x.edit <- tkentry(tt, textvariable = tk.x, width = 5) # box for user to
enter x value
x.lbl <- tklabel(tt, text = "Enter x value: ") # a fixed label
xcalc <- tkbutton(tt, text = "Calculate", command = function()
tkmessageBox(message = tclvalue(tk.x))) # button that prints x to R console
tkgrid(x.lbl, x.edit, xcalc) # a function that puts the textbox, label, and
button onto the tk window

The following doesn't work:
# tt, x.edit, x.lbl, xcalc all seem to me like an R objects that will not
be modified, so I tried
devtools::use_data(tt, x.edit, x.lbl, xcalc, internal = F, overwrite=T) #
(after defining them)
# tk.x is a variable that I want to assign a value to at the beginning, but
user can later change the value:
devtools::use_data(tt, x.edit, x.lbl, xcalc, internal = F, overwrite=T)

The following does work, but it is not a good solution:
(1) define working directory as package/data
(2) create new tk windows via tkbutton commands = function()
source(filename)
This forces the user to use a pre-defined working directory. My application
fills that wd with several hundred functions and variables. If user changes
wd or changes values of variables that my app needs, the program crashes.

Any help would be greatly appreciated!

Thanks,

-Dan

-- 
Dan Dalthorp, PhD
USGS Forest and Rangeland Ecosystem Science Center
Forest Sciences Lab, Rm 189
3200 SW Jefferson Way
Corvallis, OR 97331
ph: 541-750-0953
ddalthorp at usgs.gov

	[[alternative HTML version deleted]]



More information about the R-package-devel mailing list