slojuggler has asked for the wisdom of the Perl Monks concerning the following question:
I'm wondering about the following in my code:
1. My code barfs shortly after clicking on the "About..."
Is it possible to make the Toplevel $tl modal (i.e. hold
focus until the close button is depressed)? If so, how?
2. I've had to comment out strict because I'm not sure exactly how to pass the $mw from main to the sub do_toplevel. Can I safely use strict in a Tk program? If so, what syntax could I use to send $mw along?
#!perl -w =pod IP & Hostname GUI Program v .3 slojuggler =cut #use strict; use Socket; use Sys::HostIP; #For hostname use Sys::Hostname; my $ipaddr = hostip; print "Mine: $ipaddr \n"; my $hostnm = hostname(); print "Host $hostnm \n"; use Tk; my $mw = MainWindow->new; $mw->title("Your IP Info"); $mw->Label(-text=>"IP Address -> $ipaddr") ->pack(-fill => 'x', -side=>"top", -ipadx=>20); $mw->Label(-text=>"Hostname -> $hostnm") ->pack(-fill => 'x', -side=>"top"); $mw->Button(-text=>"Done!", -command=> sub { exit } ) -> pack (-side=> +"bottom"); #Somehow pass the $mw to the do_toplevel routine, to keep in step with + use strict #$mw->Button(-text=>"About...", -command=> \&do_toplevel + $mw arg som +ehow??? } ) -> pack (-side=>"bottom"); $mw->Button(-text=>"About...", -command => \&do_toplevel ) -> pack (-side=>"bottom +"); MainLoop(); sub do_toplevel { #Somehow pick up the $mw by using something like the following? #my $tl = shift or whatever it takes to bring in the passed in var +; ??? my $tl = $mw->Toplevel(); $tl->title("Aboutl"); $tl->Button(-text => "Close", - command => sub {$tl->destroy})->pack; $tl->waitWindow(); }
Thanks... --slojuggler
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Modal Tk Toplevel/Passing a MainWindow
by kschwab (Vicar) on Sep 08, 2001 at 18:00 UTC | |
Re: Modal Tk Toplevel/Passing a MainWindow
by chromatic (Archbishop) on Sep 08, 2001 at 22:42 UTC | |
by slojuggler (Beadle) on Sep 17, 2001 at 09:47 UTC |