📄 fig21_08.pl
字号:
#!/usr/bin/perl
# Fig 21.8: fig21_08.pl
# Perl/Tk program using GUI components.
use strict;
use warnings;
use Tk;
our $main = new MainWindow();
my @animals =
qw( aardvark baboon cheetah dog elephant yak zebu );
$main->Label( -text => "Select an animal:" )->pack();
my $list = $main->Listbox();
$list->insert( 'end', @animals );
$list->bind( '<Double-1>' => \&choose1 );
$list->pack();
MainLoop();
sub choose1
{
my $animal = $list->get( $list->curselection() );
my $color;
my $window = $main->Toplevel();
$window->Label( -text => "Select a color:" )->pack();
my @colors = qw( grey brown black tan );
foreach ( @colors ) {
$window->Radiobutton( -text => $_,
-variable => \$color, -value => $_ )->pack();
}
$window->Button( -text => 'Choose', -command =>
[ \&choose2, $animal, \$color, $window ] )->pack();
}
sub choose2
{
my ( $animal, $color, $parent ) = @_;
my $value = 0;
$color = $$color;
my $window = $parent->Toplevel();
$window->Scale( '-orient' => 'horizontal',
'-from' => 0, '-to' => 100, '-tickinterval' => 20,
'-label' =>
'Select a size in feet:', '-length' => 200,
-showvalue => 1,
'-variable' => \$value, )->pack();
$window->Button( -text => 'Choose',
-command =>
[ \&choose3, $animal, $color, \$value, $window ], )->
pack();
}
sub choose3
{
my ( $animal, $color, $value, $parent ) = @_;
my $window = $parent->Toplevel();
$window->Label( -text => "Your animal is a $animal." )->
pack();
$window->Label( -text => "It's color is $color." )->pack();
$window->Label( -text =>
"It's size is $$value feet tall." )->pack();
$window->Button( -text => 'Done',
-command => \&destroy )->pack();
}
sub destroy
{
$main->destroy()
}
###########################################################################
# (C) Copyright 2001 by Deitel & Associates, Inc. and Prentice Hall. #
# All Rights Reserved. #
# #
# DISCLAIMER: The authors and publisher of this book have used their #
# best efforts in preparing the book. These efforts include the #
# development, research, and testing of the theories and programs #
# to determine their effectiveness. The authors and publisher make #
# no warranty of any kind, expressed or implied, with regard to these #
# programs or to the documentation contained in these books. The authors #
# and publisher shall not be liable in any event for incidental or #
# consequential damages in connection with, or arising out of, the #
# furnishing, performance, or use of these programs. #
###########################################################################
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -