http://qs1969.pair.com?node_id=1105662


in reply to A question on using Tk::ItemStyle in Tk::Tree

I'm not sure what exactly is the problem, but the background colour seems to work if I change -selectbackground to plain -background.

Trying to configure -selectbackground without style leads to

Tk::Error: unknown option "-selectbackground" at /usr/lib/perl5/vendor +_perl/5.14/x86_64-cygwin-threads/Tk.pm line 251.

which seems to indicate you can't change the option for a single entry.

Also, remove the declaration of $tree_element and declare it inside the sub:

sub abba_browse { my $tree_element = $tree->info('selection')->[0]; # ...
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Replies are listed 'Best First'.
Re^2: A question on using Tk::ItemStyle in Tk::Tree
by Anonymous Monk on Oct 31, 2014 at 04:55 UTC
    Hello Choroba,

    Thank you for trying and being able to reproduce the problem. After a couple of attempts, I've been able to narrow the problem to two issues.

    1. setting -selectbackground at the ItemStyle level doesn't work. It can only be done at the Tree level (which mean as all entries in the tree need to have same selectbackground color). That said, there are no such issues at all with -selectforeground option.

    2. when -selectbackground is set at the ItemStyle level AND has the same value (i.e. 'cyan' in the above code for both the ItemStyle objects), the -font option gets messsed up and thereby the last -font option encountered while executing the code gets used (i.e. see Question 2: above)
    IT APPEARS TO ME TO BE A BUG IN Tk. However, I'm a perl newbie and experienced monks out here will have to confirm it first so that it can be filed to get it fixed.

    PS: I've moved the $tree_element declaration inside the sub.

    Thank you