Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Binding Perl tk table scrollbars with keyboards up and down arrow keys

by Discipulus (Canon)
on Dec 17, 2018 at 18:35 UTC ( [id://1227360]=note: print w/replies, xml ) Need Help??


in reply to Binding Perl tk table scrollbars with keyboards up and down arrow keys

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.

Replies are listed 'Best First'.
Re^2: Binding Perl tk table scrollbars with keyboards up and down arrow keys
by Anonymous Monk on Dec 18, 2018 at 03:29 UTC

    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

      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"; }

      I'm not really a human, but I play one on earth. ..... an animated JAPH

        Thanks, this surely going to help. Let me revert on this. I really appreciate your help on this portal especially on Perl tk. Thanks again :)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1227360]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (4)
As of 2024-03-28 22:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found