Dear Peter,
(as.numeric(tkwinfo("width", .output$ID))
- 2*as.numeric(tkcget(.output, borderwidth=NULL)) - 2)/
as.numeric(tkfont.measure(tkcget(.output, font=NULL), "0"))
(for the text widget .output) appears to do the trick (note, subtracting 2
rather than 4).
Thank you,
John
--------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario
Canada L8S 4M4
905-525-9140x23604
http://socserv.mcmaster.ca/jfox
--------------------------------
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Peter Dalgaard
> Sent: Monday, February 28, 2005 10:39 AM
> To: Prof Brian Ripley
> Cc: John Fox; [email protected]
> Subject: Re: [Rd] Getting width of Tk text widget via tcltk
>
> Prof Brian Ripley <[EMAIL PROTECTED]> writes:
>
>
> > > <Tcl> 743
> > >
> > > I could convert pixels to characters, but wonder whether
> I can get
> > > the latter directly.
> >
> > I suspect you may have some difficulty with the latter, even in a
> > monospace font. Notice that 486 is not a multiple of 80,
> and if that
> > is actually 81, 743 is not a multiple of 6.
> >
> > I was trying to do this with heights for a listbox a few
> days ago, and
> > it seems that the line spacing is actually 1 pixel greater than is
> > reported. Since you can resize to a non-integer number of lines I
> > don't believe (and I tried to read the source code) that
> Tcl/Tk works
> > internally with characters.
>
> I think that's actually an issue that involves the window manager too.
> I don't think all WMs know how to deal in integer number of
> characters.
>
> Anyways, the following piece of Tcl seems to do the trick:
>
> % expr ([winfo width .a] - 2 * [.a cget -borderwidth] -
> 4)/[font measure [.a cget -font] 0]
> 27
>
> Converting to R is left as an exercise...
>
> If I got it right then the point is that at either side of
> the window you have by 1 pixel, n border pixels, and 1 spacer
> pixel before the first character.
>
> --
> O__ ---- Peter Dalgaard Blegdamsvej 3
> c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
> (*) \(*) -- University of Copenhagen Denmark Ph:
> (+45) 35327918
> ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX:
> (+45) 35327907
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel