jmClifford has asked for the wisdom of the Perl Monks concerning the following question:
Hi. I got some code from this site that demonstrates "-textvariable" usage. However, there are some basic questions I have about it's operation. The code is;
#!/usr/bin/perl use strict; use warnings; use Tk; use POSIX; my $red; my $green; my $blue; my $mw = MainWindow->new; $mw->geometry('300x100'); # x amount then y amount $mw->title('Raw Renamer'); # A frame for labels on the left hand size my $left_frame = $mw->Frame (-borderwidth => 2, -relief => 'groove') ->pack(-side => 'left', -anchor => 'n', -expand => 1); my $text_label = $left_frame->Label->pack(-side => 'left', # Why + this ? -anchor => 'n', -expand => 1); $text_label->Label(-text =>"Red")->pack( -side => 'top', -anchor => 'w'); $text_label->Label(-text =>"Green")->pack(-side => 'top', -anchor => 'w'); $text_label->Label(-text =>"Blue")->pack( -side => 'top', -anchor => 'w'); # Another frame for the ($red $green $blue) variables my $variable_frame = $mw->Frame (-borderwidth => 4, -relief => 'groove +') ->pack(-side => 'left', -anchor => 'n', -expand => 1); my $red_label = $variable_frame->Label(-textvariable =>\$red) ->pac +k(-side => 'top'); my $green_label = $variable_frame->Label(-textvariable =>\$green)->pac +k(-side => 'top'); my $blue_label = $variable_frame->Label(-textvariable =>\$blue) ->pac +k(-side => 'top'); Intialize(); # How is this infinite loop bypassed ? MainLoop; sub Intialize { print "Str"; while(1) { print "."; $red = floor(50*rand()); $red_label->update; sleep 2; $green = floor(50*rand()+50); $green_label->update; sleep 2; $blue = floor(50*rand()+100); $blue_label->update; sleep 2; } }
The line "my $text_label" seems to be half a declaration that is used in an anonymous fashion in the subsequent 3 labels. Is this the case ?. I tried removing the "pack" part expecting that this is not required. But it is required.
Next, the call "Intialize();" should get stuck in an infinite loop. But it does not and the program runs OK? and the "MainLoop;" gives a display screen.
Regard JC.......
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Basic questions of Tk programming
by haj (Vicar) on Jan 23, 2025 at 13:01 UTC | |
by Discipulus (Canon) on Jan 24, 2025 at 09:48 UTC | |
by tybalt89 (Monsignor) on Jan 24, 2025 at 10:54 UTC | |
by Discipulus (Canon) on Jan 24, 2025 at 11:09 UTC | |
by marto (Cardinal) on Jan 24, 2025 at 11:01 UTC | |
Re: Basic questions of Tk programming
by tybalt89 (Monsignor) on Jan 23, 2025 at 16:48 UTC | |
by jmClifford (Beadle) on Jan 25, 2025 at 05:15 UTC | |
Re: Basic questions of Tk programming -- updated
by Discipulus (Canon) on Jan 23, 2025 at 12:32 UTC | |
Re: Basic questions of Tk programming
by GrandFather (Saint) on Jan 23, 2025 at 23:53 UTC | |
by tybalt89 (Monsignor) on Jan 24, 2025 at 01:27 UTC | |
by GrandFather (Saint) on Jan 24, 2025 at 03:04 UTC | |
by Don Coyote (Hermit) on Jan 30, 2025 at 22:39 UTC | |
by choroba (Cardinal) on Jan 31, 2025 at 08:38 UTC | |
|