http://www.perlmonks.org?node_id=969124

welle has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks

I am adapting an old GUI of mine, changing data visualization from a text to a tablematrix widget. I need to colorize single words. That was pretty easy in a text widget.

$kwic->tagAdd('color', "$line.$word_pos_start", "$line_kwic.$word_pos +_end");

Is this possible in a tablematrix cell? (as far as I now i can only tag a single cell (tagCell).

Replies are listed 'Best First'.
Re: Tk Tablematrix configure word in a cell
by stefbv (Curate) on May 06, 2012 at 09:03 UTC
    That was pretty easy in a text widget.

    Then try to embed a Text widget in the cell.

    Update: A quick demo:

    use strict; use warnings; use Tk; use Tk::TableMatrix; my $top = MainWindow->new; my $arrayVar = {}; foreach my $row ( 0 .. 7 ) { foreach my $col ( 0 .. 3 ) { $arrayVar->{"$row,$col"} = "r$row,c$col"; } } my $tmx = $top->Scrolled( 'TableMatrix', -rows => 7, -cols => 3, -variable => $arrayVar, -resizeborders => 'both', -titlerows => 1, -bg => 'white', ); #--- my $c = 2; foreach my $r ( 1 .. 7 ) { my $tc = build_text($top); $tmx->windowConfigure( "$r,$c", -sticky => 's', -window => $tc ); } $tmx->colWidth( $c, 20 ); $tmx->pack( -expand => 1, -fill => 'both' ); Tk::MainLoop; sub build_text { my $frame = shift; my $tc = $frame->Text( -bg => 'white', ); $tc->tagConfigure( 'blue', -foreground => 'blue', ); $tc->insert('insert', 'Text with '); $tc->insert('insert', ' blue ', 'blue'); $tc->insert('insert', ' word '); return $tc; }

      Perfect! Thank you.