- 论坛徽章:
- 7
|
本帖最后由 rubyish 于 2014-05-22 23:29 编辑
yige small example:
1: shishi INPUT, perl, Perl, Burl, Ruby, pupy....
2: shishi SELECT, perl, Perl, Python, python...
- #!/usr/bin/perl
- use Gtk2 '-init';
- my %data = (
- Perl => 'Larry Wall',
- Rust => 'Graydon Hoare',
- Php => 'Rasmus Lerdorf',
- Ruby => 'Yukihiro Matsumoto',
- Python => 'Guido van Rossum',
- );
- my ( $TRUE, $FALSE ) = ( 1, 0 );
- my $win = Gtk2::Window->new('toplevel');
- my $vbo = Gtk2::VBox->new( $FALSE, 20 );
- my $ent = Gtk2::Entry->new;
- my $fra = Gtk2::Frame->new;
- my $lab = Gtk2::Label->new("$/select or input$/$/");
- my $but = Gtk2::Button->new(' quit ');
- my $cli = Gtk2::Clipboard->get( Gtk2::Gdk->SELECTION_PRIMARY );
- my $sep = Gtk2::HSeparator->new;
- my $hbo = Gtk2::HBox->new( $FALSE, 0 );
- $win->set_title('a small example');
- $win->set_border_width(20);
- $win->resize( 200, 200 );
- $win->set_keep_above($TRUE);
- $hbo->pack_start( $but, $FALSE, $FALSE, 50 );
- $vbo->pack_start( $_, $FALSE, $TRUE, 2 ) for $fra, $ent, $sep, $hbo;
- $fra->add($lab);
- $win->add($vbo);
- $win->signal_connect( destroy => sub { Gtk2::main_quit } );
- $but->signal_connect( clicked => sub { Gtk2::main_quit } );
- $cli->signal_connect( 'owner-change' => \&Select );
- $ent->signal_connect( 'activate' => \&Input );
- $win->show_all;
- Gtk2->main;
- sub Select {
- my $select = $cli->wait_for_text();
- $ent->set_text($select);
- Input();
- }
- sub Input {
- my $text = $ent->get_text();
- my $output = $data{$text} || 'Not Found';
- $output = "$/$output$/$/";
- $lab->set_text($output);
- }
- __DATA__
复制代码 |
|