Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Popup window for asking a question

by martyandpeg (Initiate)
on Nov 29, 2010 at 15:36 UTC ( [id://874276]=perlquestion: print w/replies, xml ) Need Help??

martyandpeg has asked for the wisdom of the Perl Monks concerning the following question:

OK, I'm new to this (kind of). I have an Perl/tk application that does things like add, update and delete entries from a file. For example: When I do an add function I read a checkbox to see if that is really what I want to do. I would like to have a popup window come up and ask "are you sure". I tried calling a subroutine (from the subroutine that processes the add request) that opens the window (with buttons for yes/no), but even though the new window comes up fine the original subroutines does not wait for an answer from the new window. Any samples out there that I can look at?

Replies are listed 'Best First'.
Re: Popup window for asking a question
by moritz (Cardinal) on Nov 29, 2010 at 15:46 UTC
    but even though the new window comes up fine the original subroutines does not wait for an answer from the new window

    That's the normal behaviour for a window. If you don't want that, you should create a dialog instead.

    Armed with that knowledge, you should be able to find the documentation and examples yourself.

Re: Popup window for asking a question
by zentara (Archbishop) on Nov 29, 2010 at 17:09 UTC
    Here is a basic example.
    #!/usr/bin/perl -w use strict; use warnings; use Tk; my $mw = MainWindow->new(); $mw->withdraw(); my $ftp_warn = $mw->messageBox( -title => 'Silly message', -message => "We are displaying a silly message, do you wish to conti +nue?", -type => 'YesNo', -icon => 'question', ); if ( $ftp_warn eq 'No' ) { exit; }else { my $msg2 = $mw->messageBox( -title => 'Really?', -message => "We displayed silly message and you wish to continue?" +, -type => 'OK', -icon => 'question', ); while (1){ print "hit control-c to exit\n"; sleep 1; } }
    and here is a little right click popup that can be very handy.
    #!/usr/bin/perl use warnings; use strict; #set up main window display use Tk; my $mw = new MainWindow(-title => 'PopUp'); my @buttons = qw(A B C D E F G); #popup menu set up my $popupmenu = $mw->Menu(-tearoff => 0); foreach my $bt (reverse @buttons){ $popupmenu->insert(0, 'command', -label => $bt, #-command => [sub {print $popupmenu->cget('text') ."\n" +}], -command => [sub {print $bt ."\n"}], ); } $mw->bind("<Button-3>" => sub {$popupmenu->Popup(-popover => "cursor", -popanchor => 'nw'), -command => [sub {print "Popup\n"}]}); MainLoop();

    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku ................... flash japh
Re: Popup window for asking a question
by kcott (Archbishop) on Nov 29, 2010 at 16:01 UTC

    Take a look at Common Dialogs in the widget demo for examples of what's available (with sample code via the See Code button).

    -- Ken

Re: Popup window for asking a question
by martyandpeg (Initiate) on Nov 29, 2010 at 19:21 UTC
    Thanks so much for the guidence. I've done dialogs before in a tutorial; just never remembered that would solve my problem. Thanks again;
    A mainframe programmer trying to do Perl!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://874276]
Approved by Corion
Front-paged by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2024-04-20 07:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found