[R] tcltk problem

peter dalgaard pdalgd at gmail.com
Thu Mar 12 10:42:08 CET 2015


Fixed in R-devel. 

As a curiosity, this seems to have been there the last 7 years without anyone noticing. And the change to tcl() is another 4.5 years older...

The problem with \dontrun sections in examples is that they tend not to be run...

-pd

On 12 Mar 2015, at 09:17 , Erich Neuwirth <erich.neuwirth at univie.ac.at> wrote:

> Sorry,
> I get at these demo when I do
> ?tkscrollbar
> Then the help file for many of the UI widgets appears, titled
> TkWidgets {tcltk}
> On the bottom of this file are the 2 examples I mentioned.
> Excuse the incomplete description in the first and the incorrect description in the second message.
> 
> 
> 
> 
> 
>> On 12 Mar 2015, at 09:04, peter dalgaard <pdalgd at gmail.com> wrote:
>> 
>>> 
>>> On 11 Mar 2015, at 23:41 , Erich Neuwirth <erich.neuwirth at univie.ac.at> wrote:
>>> 
>>> OSX 10.10.2
>>> R 3.1.3
>>> XQuartz installed.
>>> 
>>> I am trying to run one of the tcltk demos
>> 
>> Which demos? Doesn't look like any the ones in the package. 
>> 
>> (Please at least be specific when you imply that someone is publishing bad code.)
>> 
>>> This one works:
>>> 
>>> tt <- tktoplevel()
>>> label.widget <- tklabel(tt, text = "Hello, World!")
>>> button.widget <- tkbutton(tt, text = "Push",
>>>                         command = function()cat("OW!\n"))
>>> tkpack(label.widget, button.widget) # geometry manager
>>>                                   # see Tk-commands
>>> 
>>> 
>>> But the next one breaks:
>>>> if(as.character(tcl("info", "tclversion")) >= "8.5") {
>>> +   # make use of themed widgets
>>> +   # list themes
>>> +   as.character(tcl("ttk::style", "theme", "names"))
>>> +   # select a theme -- here pre-XP windows
>>> +   tcl("ttk::style", "theme use", "winnative")
>>> + } else {
>>> +   # use Tk 8.0 widgets
>>> + }
>>> Error in structure(.External(.C_dotTclObjv, objv), class = "tclObj") :
>>> [tcl] bad command "theme use": must be configure, map, lookup, layout, theme, or element.
>>> 
>>> What is going wrong here?
>> 
>> Presumably "theme use" wants to be "theme", "use".
>> 
>> (Many moons ago, tcl() just pasted words together and executed the result as a Tcl command via .Tcl. Looks like the author expected .Tcl("ttk::style theme use winnative"), but nowadays it uses .Tcl.objv() which expects a vector of Tcl words so there is a difference between two words and one word with a space in the middle. The puzzling bit is that I'd have thunk Tcl 8.5 to be considerably later than the change to tcl()?)
>> 
>> 
>> -- 
>> Peter Dalgaard, Professor,
>> Center for Statistics, Copenhagen Business School
>> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
>> Phone: (+45)38153501
>> Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
> 

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-help mailing list