Using a ProgressBar is a great way to show the user something is still happening when you are doing lots of processing. Without it, the user wonders, "Is the application still running? Why isn't it responding?" Figure 23-18 shows what a fairly typical progress bar looks like. This screenshot was generated with the following code:
use Tk; use Tk::ProgressBar; my $mw = MainWindow->new(-title => 'ProgressBar example'); $progress = $mw->ProgressBar( -width => 30, -from => 0, -to => 100, -blocks => 50, -colors => [0, 'green', 50, 'yellow' , 80, 'red'], -variable => \$percent_done )->pack(-fill => 'x'); $mw->Button(-text => 'Go!', -command=> sub { for ($i = 0; $i < 1000; $i++) { $percent_done = $i/10; print "$i\n"; $mw->update; # otherwise we don't see how far we are. } })->pack(-side => 'bottom'); MainLoop;
The callback that is part of the Go button is just a quick way of showing how to do something and update the ProgressBar as part of the process. You could be loading a file, doing some number crunching, or anything else that seems to cause your program to pause.
Here is a list of options available for ProgressBar:
Copyright © 2002 O'Reilly & Associates. All rights reserved.