nitep70 has asked for the wisdom of the Perl Monks concerning the following question:
Here is a tiny example of a large program in which a scrollable array is updated by the program. Users can remove entries, change entries and move entries which all works nicely. (Not shown here) However when the program adds new entries at the end of the list and the list is longer than the viewable window, then the last entry is not shown. How can I get the program to position the cursor so that the last addition can be seen without the user having to move the cursor in the scroll-bar? Thanks
use strict; use Tkx; my $mw = Tkx::widget->new("."); $mw->g_wm_title("test"); my @results=(); my @id6=(); for my $i(0..100) {$results[$i] = 2*$i;} &do_canvas4; Tkx::MainLoop(); sub do_canvas4 {my $canvas4 = $mw->new_tk__canvas(-width => 130, -height => 500,-scro +llregion => "0 4 0 2500"); $canvas4->g_grid(-column => 2, -row => 4, -sticky => "nsew"); my $vscroll = $mw->new_tk__scrollbar(-orient => "vertical", -command = +> [$canvas4, "yview"]); $vscroll->g_grid(-column => 3, -row => 4, -sticky => "nsew"); $mw->new_ttk__sizegrip()->g_grid(-column => 3, -row => 4, -sticky => " +e"); $canvas4->configure(-yscrollcommand => [$vscroll, "set"]); for my $i(0..60) { $id6[$i] = $canvas4->create_text(79, 22+$i*26,-text => $results[$i +],-font => "fixed 16 bold",-activefill => "red",-fill => "black",-anc +hor => "e"); # $canvas4->bind($id6[$i], '<1>' => sub {handle_click3($id6[$i],$i) +}); plus also middle and right button bindings in the program } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Tkx scrolling
by kcott (Archbishop) on Sep 27, 2017 at 21:58 UTC | |
by nitep70 (Initiate) on Oct 01, 2017 at 21:11 UTC | |
by kcott (Archbishop) on Oct 03, 2017 at 05:02 UTC | |
|