I haven't used this widget, but sounds like what you are looking for! Tk::TextANSIColor

NAME

Tk::TextANSIColor - Tk::Text widget with support for ANSI color escape codes

SYNOPSIS

use Tk::TextANSIColor; $wid = $mw->TextANSIColor(?options,...?); $wid->insert($pos, $string, ?taglist, ?string, ?taglist); $string_with_escape_codes = $wid->getansi('0.0','end'); use Term::ANSIColor; $red = color('red'); # Retrieve color codes $bold = color('bold'); $wid->insert('end', "$red red text $bold with bold\n");
DESCRIPTION

This widget extends the capabilities of the standard Tk::Text widget by adding support for ANSI color escape codes. When these escape codes are detected they are replaced by equivalent tags. This widget was developed to solve the problem associated with driving a scrolling status display on a GUI as well as a status display going to an Xterm without having to know whether an xterm or Tk window is receiving the status information. Mainly used in conjunction with a tied filehandle:

$text = $MW->TextANSIColor->pack; tie *TEXT, "Tk::TextANSIColor", $text; $info = colored("Some information\n", 'red'); # Print information to all filehandles print TEXT $info print STDOUT $info
Currently the Term::ANSIColor module is required in order to decode the escape codes (and probably to generate them in the first place).

METHODS

The following methods are available in addition to those described in the documentation for Tk::Text:

getansi

$widget->getansi(index1, ?index2?)
Similar to the standard get method for Tk::Text widgets, except it returns a range of characters from the text with the ANSI escape-codes embedded. This allows one to insert a string containing ANSI escape-codes into the widget, manipulate them, and fetch them back from the widget with the escape codes intact. The return value will be all the characters in the text starting with the one whose index is index1 and ending just before the one whose index is index2 (the character at index2 will not be returned). If index2 is omitted then the single character at index1 is returned. If there are no characters in the specified range (e.g. index1 is past the end of the file or index2 is less than or equal to index1) then an empty string is returned. If the specified range contains embedded windows, no information about them is included in the returned string. Use the standard get method to fetch the string without ANSI escape-codes. TAGS

This widget uses the following tags internally:

ANSIbd - bold ANSIul - underline ANSIfgCOL - foreground color ANSIbgCOL - background color
where COL can be one of black, red, green, yellow, blue, magenta, cyan or white. If required, the tags can be altered after the widget is created by using the tagConfigure() method. e.g.:
$widget->tagConfigure('ANSIfgred', -foreground => 'blue');
in order to make 'red' appear 'blue'.

REQUIREMENTS

This modules requires the Term::ANSIColor module. The Tk module is also required. SEE ALSO

Tk::Text, Term::ANSIColor

AUTHOR

Tim Jenness (<t.jenness@jach.hawaii.edu>)


In reply to Re: How can I change the text color by opolat
in thread How can I change the text color by O_Monster

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.