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

Does anybody know if it is possible to specify a color for each individual entry in a listbox?

Replies are listed 'Best First'.
Re: Coloring Tk Listbox
by rcseege (Pilgrim) on May 05, 2005 at 21:05 UTC
    Actually, with the most recent Tk releases 804.* it is possible to configure the following options independantly for each list item: background, foreground, selectbackground, and selectforeground.

    So long as you were using one of the newer releases, you could do something like this:

    use Tk; my $mw = MainWindow->new; my @colors = qw(red orange yellow green blue purple); my $listbox = $mw->Listbox( -height => 0, -foreground => 'white' )->pack; foreach my $c (@colors) { $listbox->insert('end', $c); $listbox->itemconfigure('end', -background => $c); } MainLoop;

    As mentioned previously, HList can also support this functionality... and more besides. The tradeoff is that it's slightly more complex to configure.

    Tk::TextList will also provide this functionality, and more

    As a side note: It appears that there is a memory leak with Tk::Listbox in the most recent releases, so take that into consideration.

    Rob
      I am a kinda novice in Perl Tk so I will REALLY appreciate a working example of changing the color of a hierarchical item in HList. Let's say I want to display dir tree and dynamically gray out empty directories. Thanx! vess
Re: Coloring Tk Listbox
by merrymonk (Hermit) on May 05, 2005 at 19:07 UTC
    You might try and use an HList instead.
    I have certainly given different colours to each row.
    However, I am not sure if you can give a different colour to each 'cell'.
Re: Coloring Tk Listbox
by splinky (Hermit) on May 05, 2005 at 18:10 UTC
    Unfortunately, no, it isn't possible. And afaik nobody has built a listbox widget replacement that can do that.