in reply to Using a goto in a $main_window->after command

Now, using Tk804, it just freezes, and refuses to work. Does anyone have any idea why?
Because its a bad idea (should've never worked)? All MainLoop consists of is
sub MainLoop { unless ($inMainLoop) { local $inMainLoop = 1; while (Tk::MainWindow->Count) { DoOneEvent(0); } } }
So just DoOneEvent(0) a couple of times, and then return the progressbar. Example
use Tk; my $pb = launch_progress(); for(1 .. 100) { $pb->value($_); DoOneEvent(0); select undef, undef, undef, 0.06; warn $_,$/; } undef $pb; exit; sub launch_progress { my $main_window = Tk::MainWindow->new; my $tk_progressbar = $main_window->ProgressBar( -width => 20, -height => 300, -from => 0, -to => 100, )->pack( -fill=>"x", -pady => 24, -padx => 8 ); my $c = 0; while (Tk::MainWindow->Count and $c < 10) { DoOneEvent(0); $c++; } return $tk_progressbar; }

MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
** The third rule of perl club is a statement of fact: pod is sexy.

Replies are listed 'Best First'.
Re^2: Using a goto in a $main_window->after command
by eserte (Deacon) on Jun 04, 2004 at 09:46 UTC
    There's a shortcut for the DoOneEvent loop. It's called update() :-)

      Fantastic! That got it working exactly as I intended! Thanks to PodMaster for the idea and the general hint to look at the source code, and to eserte for the improvment.

      By the way for anyone following this, the update method needs to be called on a MainWindow object.