J'ai modifié la solution de RouMao dans mon exemple de code ci-dessous.Comment ajouter un saut de ligne dans un Wx :: textCtrl
selon la réponse acceptée à this question here on stackoverflow, je devrais être en mesure d'ajouter des lignes supplémentaires à un Wx :: TextCtrl en terminant le texte ci-joint avec « \ n ».
my $t = Wx::TextCtrl->new($p, -1, "$title\n" ,[-1,-1],[600,260]);
$t->{TERM}->AppendText("another line\n");
Malheureusement, cela ne semble pas fonctionner, comme le montre le code suivant. Je cours Strawberry Perl sur Windows XP.
package main;
use Modern::Perl;
WxMultiLineCtrl->new()->MainLoop();
package WxMultiLineCtrl;
use base qw(Wx::App);
use Wx qw (wxVERTICAL wxTOP wxGROW wxHORIZONTAL wxTE_MULTILINE
wxFIXED_MINSIZE wxLEFT);
use Wx::Event qw(EVT_BUTTON);
sub OnInit {
my $app = shift ;
my $title='MultiLine Wx Text Control';
my $frame = Wx::Frame->new( undef ,-1,$title,[-1, -1],[640,280]);
my $p = Wx::Panel->new( $frame, -1);
my $v0= Wx::BoxSizer->new(wxVERTICAL);
my $h1= Wx::BoxSizer->new(wxHORIZONTAL);
my $h2= Wx::BoxSizer->new(wxHORIZONTAL);
my $term = Wx::TextCtrl->new( $p, -1
, "$title\n"
, [-1,-1],[600,260]
, wxTE_MULTILINE
);
my $cancelBtn = Wx::Button->new( $p, -1, "cancel" ,[-1,-1],[-1,-1]);
my $addTxtBtn = Wx::Button->new( $p, -1, "add text",[-1,-1],[-1,-1]);
$p->{TERM}=$term;
EVT_BUTTON( $p, $cancelBtn, \&cancel);
EVT_BUTTON( $p, $addTxtBtn, \&addTxt);
$v0->Add($h1,1,wxLEFT);
$v0->Add($h2,1,wxLEFT);
$h1->Add($term , 1, wxTOP | wxGROW , 5);
$h2->Add($cancelBtn , 1, wxTOP | wxFIXED_MINSIZE , 5);
$h2->Add($addTxtBtn , 1, wxTOP | wxFIXED_MINSIZE , 5);
$p->SetSizer($v0);
$p->SetAutoLayout(1);
$app->SetTopWindow($frame);
$frame->Show(1);
}
sub addTxt {shift->{TERM}->AppendText("another line\n");}
sub cancel {exit;}
Je ne peux pas m'empêcher de remarquer que l'autre question concernait 'wxpython', et celle-ci concerne' wxperl'. – TLP
@TLP: Oui, mais comme Wx est un framework portable que j'ai supposé (comme à 100% sûr), le fonctionnement interne serait le même! – lexu