我想在 wxperl 应用程序的顶层捕获按键。从文档看来,应该使用其中之一EVT_CHAR EVT_CHAR_HOOK EVT_KEY_DOWN
。
在以下代码中,EVT_LEFT_DOWN
有效,但EVT_KEY_DOWN
(或任何替代方案)无效。
有谁知道该怎么做?OS X,顺便说一句。
use warnings;
use strict;
use Wx;
package MyApp;
use base 'Wx::App';
use Wx::Event
qw(EVT_LEFT_DOWN EVT_CHAR EVT_CHAR_HOOK EVT_KEY_DOWN);
sub OnInit {
my( $self ) = @_;
my $frame = Wx::Frame->new(
undef,
-1,
'Hello World',
[-1, -1],
[250, 150],
);
EVT_KEY_DOWN( $frame, \&on_event ); # doesn't work
# EVT_LEFT_DOWN( $frame, \&on_event ); # works
$frame->Show( 1 );
return 1;
}
sub on_event {
print "peekaboo\n";
}
package main;
my $app = MyApp->new;
$app->MainLoop;