OK, I have the answers to my questions:
The GUI error in Windows happens for the sequence: create a toplevel in
Tcl, set an icon, pack something. A small self contained example is:
library(tcltk)
.Tcl("
set icon [image create photo -width 30 -height 20]
$icon put blue -to 0 0 30 20; $icon put yellow -to 0 6 30 11
proc foo {} {
set i 0
while {[winfo exists .w$i]} {
incr i
}
toplevel .w$i
wm iconphoto .w$i $::icon
canvas .w$i.c -bg steelblue
pack .w$i.c -fill both -expand TRUE
}
")
.Tcl('foo')
Not setting the icon or replacing the "toplevel .w$i" command with the
tktoplevel() R callback will fix the problem.
As for linking Tcl version 8.6 with R under Windows: I have compiled R
against ActiveTcl version 8.6 which works without the necessity of
copying and renaming the dlls. So far, ActiveTcl 8.6 works well.
Adrian
On 2015-09-28 07:36 PM, Adrian Waddell wrote:
Dear all,
I am working on an R package intended for CRAN that requires Tcl version
8.6 because of the TclOO tcl extension and the -angle option for canvas
text items.
R for Windows currently still ships with Tcl 8.5. Does anyone have
experience with linking R under Windows to a Tcl interpreter of version 8.6?
When I link R 3.2.2 (installed from the binary on Windows 8) to a custom
Tcl installation of version 8.6 (e.g. from ActiveState for both 32bit or
64bit) using the MY_TCLTK environment variable, then loading the tcltk
package will result with a tk85.dll not found error. This problem can be
“fixed” by copying and renaming the tk86.dll and the tcl86.dll files in
the bin folder of the activetcl installation to tk85.dll and tcl85.dll.
However, this setup does not work well for me; sometimes, when creating
a number of involved toplevel windows at once, some of them are not
created properly and are left completely unresponsive, see the attached
image. I have not managed to create a small contained example so far.
But I can share my code, if necessary.
Is there a reason that under Windows R looks for the tk85.dll in
particular, effectively forcing the Tcl version to 8.5? Also, does
anyone know a remedy to this gui error?
Thanks,
Adrian Waddell
> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: i386-w64-mingw32/i386 (32-bit)
Running under: Windows 8 x64 (build 9200)
locale:
[1] LC_COLLATE=English_Canada.1252 LC_CTYPE=English_Canada.1252
[3] LC_MONETARY=English_Canada.1252 LC_NUMERIC=C
[5] LC_TIME=English_Canada.1252
attached base packages:
[1] tools tcltk stats graphics grDevices utils
datasets
[8] methods base
other attached packages:
[1] loon_0.8.4.4
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel