[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