Wx::StaticBoxSizer のサブクラスにイベント ハンドラを追加しようとしていますが、次のエラーが発生します。
C:/strawberry/perl/site/lib/Wx/Event.pm の 38 行目で、パッケージ「Wx::StaticBoxSizer」を介してオブジェクト メソッド「Connect」が見つかりません。
これは、Wx::StaticBoxSizer がイベントを処理できないということですか? もしそうなら、オブジェクトを自動的にサイズ変更して独自のイベントを処理するように構成する別の方法はありますか?
私のサブクラスコードは次のとおりです。必要に応じて、フレームとアプリ クラスも追加できます。
package my_sizer;
use base 'Wx::StaticBoxSizer';
use Wx qw(:sizer);
use Wx::Event qw(EVT_BUTTON);
sub new {
my $ref = shift;
my $parent = shift;
my $self = $ref->SUPER::new(
Wx::StaticBox->new($parent, -1, 'Box label'),
wxHORIZONTAL
);
my $button = Wx::Button->new($parent, -1, 'Button');
$self->Add($button);
EVT_BUTTON($self, $button, \&click);
$self->SetSizeHints($parent);
return $self;
}
sub click { Wx::MessageBox('Click!'); }
ありがとう