Bonjour
J'utilise wxWidgets depuis peu, je ne maitrise donc pas tres bien cet outil. Mon but est de faire une zone de log, pour cela j'utilise un champ de texte "log" de type wxTextCtrl (couleur de texte par defaut : noir). Je souhaite que les erreurs s'affichent en rouge, pour contraster avec le reste des informations qui s'affichera en noir.
J'essais donc de changer la couleur de texte lorsqu'une erreur survient, mais je ne dois pas utiliser la bonne méthode. Je m'explique :
Mais ce code donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 wxTextAttr attribut; attribut.SetTextColour(wxColour(255,0,0)); *log << "ceci doit etre noir\n"; log->SetDefaultStyle(attribut); *log << "ceci doit etre rougne\n";
Bref, aucun changement de couleur.ceci doit etre noir
ceci doit etre rougne
Pour changer la couleur d'un texte, on peut faire autrement :
Mais cela donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 *log << "ceci doit etre noir\n"; //log->SetForegroundColour(wxColour( 255, 0, 0)); *log << "ceci doit etre rouge\n";
Bref SetForegroundColour change la couleur de TOUT le texte, y compris celui deja present, alors que je ne veux qu'une ligne.ceci doit etre noir
ceci doit etre rougne
J'ai également testé SetStyle, qui fonction sensiblement comme SetDefaultStyle à ceci pret qu'il faut préciser un début et une fin, mais il ne change pas non plus la couleur. Comment faire pour ne modifier que la bonne ligne ?
Partager