Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Popup window for asking a question

by martyandpeg (Initiate)
on Nov 29, 2010 at 15:36 UTC ( #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?

Comment on Popup window for asking a question
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 (Abbot) 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
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? | Other CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2015-07-31 02:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (274 votes), past polls