Chinaunix

标题: 请教Perl鼠标操作的包 [打印本页]

作者: perllover007    时间: 2014-05-21 18:10
标题: 请教Perl鼠标操作的包
本帖最后由 perllover007 于 2014-05-22 05:44 编辑

请教各位,如何实现用鼠标选中文字内容后直接获取到文本框自动检索,就像有道词典一样,鼠标选择文字后,自动搜索。
我想用鼠标取词后自动调入一个文本框中,再进行文本框内容的其他操作。不知道我描述清楚了没有?
如有可能,请请给个代码,多谢!
作者: rubyish    时间: 2014-05-23 03:19
本帖最后由 rubyish 于 2014-05-22 23:29 编辑

yige small example:
1: shishi INPUT, perl, Perl, Burl, Ruby, pupy....
2: shishi SELECT, perl, Perl, Python, python...
  1. #!/usr/bin/perl

  2. use Gtk2 '-init';

  3. my %data = (
  4.     Perl   => 'Larry Wall',
  5.     Rust   => 'Graydon Hoare',
  6.     Php    => 'Rasmus Lerdorf',
  7.     Ruby   => 'Yukihiro Matsumoto',
  8.     Python => 'Guido van Rossum',
  9. );

  10. my ( $TRUE, $FALSE ) = ( 1, 0 );
  11. my $win = Gtk2::Window->new('toplevel');
  12. my $vbo = Gtk2::VBox->new( $FALSE, 20 );
  13. my $ent = Gtk2::Entry->new;
  14. my $fra = Gtk2::Frame->new;
  15. my $lab = Gtk2::Label->new("$/select or input$/$/");
  16. my $but = Gtk2::Button->new('    quit    ');
  17. my $cli = Gtk2::Clipboard->get( Gtk2::Gdk->SELECTION_PRIMARY );
  18. my $sep = Gtk2::HSeparator->new;
  19. my $hbo = Gtk2::HBox->new( $FALSE, 0 );

  20. $win->set_title('a small example');
  21. $win->set_border_width(20);
  22. $win->resize( 200, 200 );
  23. $win->set_keep_above($TRUE);
  24. $hbo->pack_start( $but, $FALSE, $FALSE, 50 );
  25. $vbo->pack_start( $_, $FALSE, $TRUE, 2 ) for $fra, $ent, $sep, $hbo;
  26. $fra->add($lab);
  27. $win->add($vbo);

  28. $win->signal_connect( destroy => sub { Gtk2::main_quit } );
  29. $but->signal_connect( clicked => sub { Gtk2::main_quit } );
  30. $cli->signal_connect( 'owner-change' => \&Select );
  31. $ent->signal_connect( 'activate'     => \&Input );

  32. $win->show_all;
  33. Gtk2->main;

  34. sub Select {
  35.     my $select = $cli->wait_for_text();
  36.     $ent->set_text($select);
  37.     Input();
  38. }

  39. sub Input {
  40.     my $text = $ent->get_text();
  41.     my $output = $data{$text} || 'Not Found';
  42.     $output = "$/$output$/$/";
  43.     $lab->set_text($output);
  44. }


  45. __DATA__

复制代码

作者: perllover007    时间: 2014-05-23 08:37
非常感谢!!! 回复 2# rubyish


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2