Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

(ichi) Re: Help scrolling a series of textboxes with Tk

by ichimunki (Priest)
on Apr 26, 2002 at 17:33 UTC ( #162349=note: print w/replies, xml ) Need Help??

in reply to Help scrolling a series of textboxes with Tk

This may not solve the problem exactly. But here's an example of using one Tk::Text widget to contain other Tk widgets, even other Text widgets.

#!/usr/bin/perl -w use strict; use Tk; my $MW = MainWindow->new; my $TX = $MW->Scrolled( 'Text', -wrap => 'none' )->pack( -expand => 'y +', -fill => 'both' ); my $t1 = $TX->Scrolled( "Text", width => 20 ); my $t2 = $TX->Scrolled( "Text", width => 20 ); my $t3 = $TX->Scrolled( "Text", width => 20 ); my $t4 = $TX->Scrolled( "Text", width => 20 ); my $t5 = $TX->Scrolled( "Text", width => 20 ); $TX->window('create', 'end', -window => $t1); $TX->window('create', 'end', -window => $t2); $TX->window('create', 'end', -window => $t3); $TX->window('create', 'end', -window => $t4); $TX->window('create', 'end', -window => $t5); MainLoop;
It is left as an exercise for the reader to get all that to size in an eye-pleasing way.

PS in 'perldoc Tk::Scrollbar' there is mention of an '-orient' attribute, but attempts to use it (on my machine) fail. Very disappointing.

I also suggest looking at a scrolling Tk::Canvas widget as the container for multiple widgets, but don't have a facile example since Canvas is a little more complex. The 'widget' demo offers some hints, but nothing to latch onto.

Replies are listed 'Best First'.
Re: (ichi) Re: Help scrolling a series of textboxes with Tk
by BlueBlazerRegular (Friar) on Apr 26, 2002 at 18:15 UTC
    Very nice ichimunki,

    I was trying to get this to work but couldn't get the 'x' scroll bar to work until I added -wrap => 'none',, which I was going to mention in the original version of my reply, but between your original post and my figuring out what to do, you had already figured it out for yourself (or maybe you already knew and just forgot to add it the first time).

    BTW, the -orient is only for hand-created scrollbars. Using the Scrolled method, you want to use the -scrollbars => 'osoe' option, which, in this case, assigns two optional scrollbars (the 'o' portion), one on the 's'outh, and one on the 'e'ast. You can assign the scrollbars to the four sides, and each can be made optional (put the 'o' before the direction portion).

      -orient: Yes. I meant that I was trying to add an 's' scrollbar to the original code offered by jeanine. But when I added it, instead of getting a horizontal scrollbar across the bottom I got a vertical scroll on the bottom! Which is why I attempted to use the -orient option which is listed in the perldoc (although no valid values are given for it), but failed on my installation.

      And yes, stuffing things into Tk::Text widgets gets a bit tricky (since you have to remember things like wrapping)... which is why I pointed out Tk::Canvas-- but Canvas widgets require a lot more thought and planning to use effectively.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://162349]
LanX interesting POTUS reminds his people of brutal colonial past in the Philipines ...
[LanX]: ... what's next? Donald as John Wayne in "Rio Pig Blood - Bad Hombres must Die" ?
[LanX]: nowadays no idea is too silly to be unlikely...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (7)
As of 2017-08-18 12:50 GMT
Find Nodes?
    Voting Booth?
    Who is your favorite scientist and why?

    Results (301 votes). Check out past polls.