我想在 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;