It works fine for me on GNU/Linux:
package Frame;
use strict;
use warnings;
use Wx qw[:everything];
use base qw(Wx::Frame);
sub new {
my $self = shift;
$self = $self->SUPER::new(
undef,
-1,
'Test app',
[-1, -1],
[-1, -1],
wxDEFAULT_FRAME_STYLE,
);
#- Grid Sizer
my $sizer = Wx::GridSizer->new(2, 1);
my $text = Wx::TextCtrl->new(
$self, -1, q{Hello},
[ -1, -1 ],
[ -1, 40 ],
wxTE_MULTILINE,
);
my $button = Wx::Button->new( $self, -1, '&Color',[ 70, 30 ] );
my $hbox = Wx::BoxSizer->new(wxHORIZONTAL);
Wx::Event::EVT_BUTTON(
$self, $button,
sub {
$text->SetForegroundColour( Wx::Colour->new(255,0,0) );
$text->SetBackgroundColour( Wx::Colour->new('yellow') );
}
);
$sizer->Add( $text, 0, wxALIGN_CENTRE | wxGROW | wxALL, 2, );
$sizer->Add( $button, 0, wxALIGN_CENTRE | wxGROW | wxALL, 2, );
$self->SetSizer( $sizer );
$sizer->Fit($self);
return $self;
}
1;
package App;
use strict;
use warnings;
use base 'Wx::App';
sub OnInit {
my $frame = Frame->new();
$frame->Show( 1 );
}
package main;
use strict;
use warnings;
my $app = App->new();
$app->MainLoop;
Regards, Stefan