in reply to displaying program status in perl tk
GUI programs work in a different fashion than normal code. The Mainloop is the one updating the screen and if you don't return to it, nothing gets updated. So your while loop was poison for the GUI
#!/usr/bin/perl use warnings; use strict; use Tk; my ($no,$upper_no,$mw,$realend); $no=0; $upper_no=''; $mw = MainWindow->new; $mw->geometry("300x100"); $mw->title("PerlTk Test"); $mw->Label(-text => "Enter a 5 digit number") ->place(-relx => 0.0,-rely => 0.05); $mw->Entry(-takefocus => 1, -textvariable => \$upper_no, -width => 12) ->place(-relx => 0.50, -rely => 0.05); $mw->Button(-text => "Click to count upto that number and display them + below as you count", -wraplength => 250, -command => \&count) ->place(-relx => 0.5, -anchor => "center", -rely =>0.50); $mw->Label(-textvariable => \$no, -relief => 'sunken', -anchor => 'center') ->place(-relx =>0.0, -rely => 0.80, -relwidth => 1.0, -relheight = +> 0.2); MainLoop; sub count { if ($upper_no=~/^\d+$/ and $upper_no > 0) { if ($no < $upper_no) { $no++; } } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: displaying program status in perl tk
by Anonymous Monk on Feb 04, 2009 at 16:13 UTC | |
by robobunny (Friar) on Feb 04, 2009 at 16:59 UTC | |
by boblawblah (Scribe) on Feb 04, 2009 at 22:00 UTC |