[R] bitmap images in tcltk

Dirk Eddelbuettel edd at debian.org
Tue May 6 20:53:59 CEST 2003

On Tue, May 06, 2003 at 02:24:10PM -0400, John Fox wrote:
> I'm writing a package using tcltk. Thanks to Peter Dalgaard's excellent 
> work on the tcltk package, almost everything has gone very smoothly. I'm 

Seconded. It is truly excellent, and cross-platform without any heachaches.

> stymied, however, by the following problem:
> I want to incorporate a bitmap image, stored as an xbm file, in a widget. 
> To take a simple example,
>     top <- tktoplevel()
>     tkgrid(tklabel(top, bitmap="@file.xbm", fg="red"))
> will work as long as file.xbm is in the current directory; alternatively, I 
> could specify the path to this file. The problem is that I can't figure out 
> a reliable way of predicting (or discovering) where the bitmap file will 
> reside when my package is installed.
> Any suggestions would be appreciated.

There is a much easier solution thanks to Luke's tkrplot which is available
for win32 and unix on CRAN.  A simple example is

> tt <- tktoplevel()
> pl <- tkrplot(tt, function() plot(1:10, main="foo"))
> tkpack(pl)

It can do fancier stuff too by using a 'replot' feature. The example from
the help page varies a simple function by tieing a callback command and
variable from a scale to a function around tkreplot():

     tt <- tktoplevel()
     img <-tkrplot(tt, function() plot(1:20,(1:20)^bb))
     f<-function(...) {
         b <- as.numeric(tclvalue("bb"))
         if (b != bb) {
             bb <<- b
     s <- tkscale(tt, command=f, from=0.05, to=2.00, variable="bb",
                  showvalue=FALSE, resolution=0.05, orient="horiz")

Don't drink and derive. Alcohol and algebra don't mix.

More information about the R-help mailing list