BWidget ScrollableFrame
http://docs.activestate.com/activetcl/8.5/bwidget/ScrollableFrame.html

Example rewritten to use grid.

use strict;
use Tkx;
Tkx::package_require("BWidget");

my $mw = Tkx::widget->new(".");
my $sw = $mw->new_ScrolledWindow();
my $sf = $sw->new_ScrollableFrame();

$sw->setwidget($sf);
#$sw->g_pack(-fill => "both", -expand => 1);
$sw->g_grid(-sticky => "nsew");
# In Tk 8.4, you must use '0' instead of $sw below. Tk 8.5 will find
# the row/col based on widget reference
Tkx::grid(rowconfigure => $mw, $sw, -weight => 1);
Tkx::grid(columnconfigure => $mw, $sw, -weight => 1);

my $subf = Tkx::widget->new($sf->getframe());

my $b;
for my $i (1..20) {
    for my $j (1..20) {
        $b = $subf->new_ttk__button(-text => "$i,$j",
                                    -command => sub {exit;});
        $b->g_grid(-row => $i, -column => $j);
    }
}

Tkx::MainLoop;

Enjoy,

Jeff

Reply via email to