On 07/21/2010 09:36 AM, Alex Bokov wrote:
> I've been able to figure out on my own how to do what I need in the
> largely undocumented tcltk package, but I've finally hit a wall. I
> can't even think of any sufficiently specific search terms to use for
> this.
Oops. Murphy's Law-- the answer only comes to you after you already send
off an email to the experts. Sorry to bother you, I figured it out
already. Here's how to make the code example I posted earlier...
> require(tcltk)
> tt<- tktoplevel()
> xscr<- tkscrollbar(tt, repeatinterval=5,orient="horizontal",
> command=function(...)tkxview(txt,...))
> yscr<- tkscrollbar(tt, repeatinterval=5,
> command=function(...)tkyview(txt,...))
> txt<- tktext(tt,bg="white",font="courier",
>
> xscrollcommand=function(...)tkset(xscr,...),yscrollcommand=function(...)tkset(yscr,...),
> wrap="none")
> tkgrid(txt,yscr)
> tkgrid(xscr)
> tkgrid.configure(yscr,sticky="ns")
> tkgrid.configure(xscr,sticky="ew")
> for (i in (1:100)) tkinsert(txt,"end",paste(i,"^ 2 =",i*i,", "))
> tkconfigure(txt, state="disabled")
> tkfocus(txt)
>
...resize dynamically. All I had to do was add the following lines to
the end of it:
tkgrid.columnconfigure(tt,0,weight=1)
tkgrid.rowconfigure(tt,0,weight=1)
tkgrid.rowconfigure(txt,0,weight=1)
tkgrid.columnconfigure(txt,0,weight=1)
tkgrid.configure(txt,sticky='nswe')
I had been so close before, I just didn't realize that if you have a
complicated frame structure enclosing the widget, then the weight needs
to be set on every enclosing frame, not just the widget itself. The hard
part is figuring out which row and column a column-spanning widget
really belongs to-- so far it seems to belong to the left-most and
top-most one.
Anyway, thanks to anybody who was going to answer this, hopefully I'm
sending this soon enough to save you the effort of composing a reply.
Have a great day!
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel