http://www.perlmonks.org?node_id=372995


in reply to Tk::ProgressBar --Reset it?

I tried the following and it worked just fine:

#!/usr/bin/winperl use warnings; use strict; use Tk; use Tk::ProgressBar; my $w = MainWindow->new(); my $p = $w->ProgressBar( -blocks => 1, -width => 20, -length => 200, -from => 0, -to => 100, -variable => \(my $foo), )->pack(); $foo = 0; $w->repeat(10, sub { $foo = ($foo + 1) % 100 }); MainLoop;

bbfu
Black flowers blossom
Fearless on my breath

Replies are listed 'Best First'.
Re^2: Tk::ProgressBar --Reset it?
by amonotod (Acolyte) on Jul 09, 2004 at 15:01 UTC
    Here is the now working code that is closer to what I am doing...
    #perl -w use strict; my ($display, $progress, $percent_done, $progress_bar_set, $mw, $lblTe +xt, $display, $line, $count); &CreateDisplay; $line = 1; while ($line < 30) { $display->insert('0.0', "Line $line\n"); $mw->update; $count = 1; while ($count < 50) { $percent_done = $count * 2; $mw->update; $count++; sleep 1; } $line++; sleep 2; } sub CreateDisplay { use Tk; use Tk::Text; $mw = MainWindow->new(-title => 'Progress bars'); create_progressbar(); $lblText = $mw->Label(-text=>"This is a test of multiple progress ba +rs...")->pack(-side => 'top'); $display = $mw->Text(-height => '25', -width => '100',)->pack(-side +=> 'bottom', -expand => '1', -fill => 'both'); $display->insert('0.0', "Starting line\n"); $mw->update; } sub create_progressbar { use Tk::ProgressBar; $progress = $mw->ProgressBar( # create a progress bar for reference -length => 100, -width => 20, -from => 0, -to => 100, -blocks => 100, -colors => [0, 'blue'], -variable => \$percent_done )->pack(-fill => 'x'); }
    The missing ingredient was the the $mw->update after each $percent_done incremement. It worked while increasing, but just didn't when decreasing, for some reason.....

    Thank you for the help,
    amonotod