in reply to Re: TK Scrollbars not working correctly
in thread TK Scrollbars not working correctly

Actually the only time I want to see the scrollbars is when the image is larger than 300 x 300. That's why I tried to do the optional bit. My thinking is, after reading the replies, that I should probably test the size of my graphic in the subroutine that gets the size, see if it's over my defined limit and build a string of what I want to see as scrollbars rather than use the optional bit. That may be a bit of a kludge, but using -scrollbars => 'osow' makes them both disappear.

There is no emoticon for what I'm feeling now.

  • Comment on Re: Re: TK Scrollbars not working correctly

Replies are listed 'Best First'.
Re: Re: Re: TK Scrollbars not working correctly
by hiseldl (Priest) on Jan 24, 2003 at 06:33 UTC

      the only time I want to see the scrollbars is when the image is larger than 300 x 300

    Aha! I think you want to set the -scrollregion. Set the -scrollregion after you have populated the canvas so that the scrollbars can reset to where they need to be. I loaded a 300x300 image and the scrollbars were not there, then I loaded a 400x400 image and the scrollbars both appeared.

    use Tk 800.000; use Tk::Canvas; use strict; my $main = Tk::MainWindow->new(); my $canvas=$main->Scrolled('Canvas', -scrollbars => 'osoe', -bg=>'white', -width=>300, -height=>300, )->pack(); my $image300x300 = $canvas->Photo(-file=>'300x300.gif'); my $image400x400 = $canvas->Photo(-file=>'400x400.gif'); my $id = $canvas->createImage(200,200,-image => $image400x400); # configure the scrollregion AFTER you populate the # canvas widget to reset the scrollbars $canvas->configure( -scrollregion => [ $canvas->bbox("all") ]); MainLoop;

    Is this what you're looking for?

    --
    hiseldl
    What time is it? It's Camel Time!