Hello,
waiting the wake up of Tk masters, i suppose, in your binding of the down arrow key,you can modify the position of the scrollbar too: $scrollbar->set(first, last);
This can used in conjunction of the -yscrollcommand of the table widget in your case.
See Tk::Scrollbar documentation.
Posting a short, working code, will help others to contribute
L*
UPDATE see also Re: Perl Tk issue with mouse wheel scrolling
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.
| [reply] [Watch: Dir/Any] [d/l] [select] |
Thanks, i am using scrollbar option in table, I tried to use (scroll, moveto, units) with some row calculations, it is working but not that clean. set method looks good need to try that. Meanwhile someone could suggest more would be great help with the table -scrollbar option
| [reply] [Watch: Dir/Any] |
Hi, see Need help finding which column/row the mouse cursor is over in Tk.... You might be able to get your current scrollbar position, then use $scrollbar->set(first, last); to adjust your new range. You may even be able to juggle the code in the -scrollcommand option, and use the -fixedrows and or -fixedcolumns options to select your range. Here is something that you could look at to start your mind working.
#!/usr/bin/perl
use warnings;
use strict;
use Tk;
use Tk::Table;
my $mw= tkinit;
#$mw->geometry("400x400+100+100");
my $table = $mw->Scrolled('Table',
-rows =>2,
-columns => 100,
-fixedrows => 2, #trick to hide scrollbars
-fixedcolumns => 5,
-scrollbars => 'soe',
-takefocus => 1,)->pack(-fill=>'both',
-expand=>1);
my %widgets;
for my $row(1..10){
for my $col(1..100){
$widgets{$row}{$col} = $table->Button(
-text=> "$row - $col",
-background => 'white',
-command => sub{ do_me($row,$col) }
);
$table->put( $row,$col,$widgets{$row}{$col} );
}
}
MainLoop;
sub do_me{
my ($row, $col) = @_;
print "$row $col\n";
}
| [reply] [Watch: Dir/Any] [d/l] |