in reply to need a popup gui stdin

Here is a little fancier one for you, with window centering, like a real popup.
#!/usr/bin/perl use warnings; use strict; use Tk; my $MainWindow = MainWindow->new; $MainWindow->title("Data Entry Form"); # hide window to prevent a double flicker # it is raised later after it is built $MainWindow->withdraw; $MainWindow->fontCreate('big', -family=>'arial', -weight=>'bold', -size=> 18 ); my $NameOfPerson; # global variable $MainWindow -> Label(-justify => 'left', -bg => 'white', -font => 'big', -text => "Name of person : ") ->pack(-side => 'left',-anchor => 'n'); my $entry = $MainWindow -> Entry( -bg => 'white', -font => 'big', -selectborderwidth => 10) ->pack(-side => 'top',-anchor => 'n'); $entry->bind('<Return>',[\&somesub]); $entry->focus; $MainWindow -> Button(-text => "OK", -command => \&somesub) ->pack(-side => 'bottom',-anchor => 'center'); #centers window for popup #CenterWindow($MainWindow, 300, 200); CenterWindow($MainWindow); # show window now $MainWindow->deiconify(); $MainWindow->raise; MainLoop; #your script can continue here after Tk is done # ie after Mainwindow destroy is run while(1){print time."\t$NameOfPerson Your script continues here\n"; sl +eep 1;} sub somesub { $,="\n"; $NameOfPerson = $entry -> get; print "\nNameOfPerson ->$NameOfPerson\n"; $MainWindow -> destroy; } sub CenterWindow { my($window, $width, $height) = @_; $window->idletasks; $width = $window->reqwidth unless $width; $height = $window->reqheight unless $height; my $x = int(($window->screenwidth / 2) - ($width / 2)); my $y = int(($window->screenheight / 2) - ($height / 2)); $window->geometry("=${width}x${height}+${x}+${y}"); }

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh

Replies are listed 'Best First'.
Re^2: need a popup gui stdin
by diamondsandperls (Beadle) on May 24, 2012 at 22:43 UTC

    errors on the below line Can't call method "setgrid" on an undefined value at

    $lab_pass -> grid(-row=>2,-column=>1);
      errors on the below line ...
       $lab_pass -> grid(-row=>2,-column=>1);

      This is code from jack123's reply, not zentara's. Try fixing the former code – it can be fixed – and running it; it may throw light on what you need. Or else try zentara's code, with which I have not experimented, but in which I would have more confidence.

        There is something I am missing I believe I have finally got some code to work as far as supplying the gui and text box with submit button and i have verified the input and everything is getting stored to the $text variable. But there is no more processing of teh remainder of the code which if i comment the block out it will process the remainder of teh code but I HAVE to have stdin with a gui. below is my current code after i hit submit there is no more processing of remaining code.

        my $mw = MainWindow->new; my $text; $mw->Label( -text => "Enter password:" )->pack(); $mw->Entry( -textvariable => \$text )->pack(); $mw->Button( -text => "Submit", -command => sub {exit} )->pack(); MainLoop;