This problem is caused by an unfortunate auto-delegation implementation in Tk. Tk::BrowseEntry inherits from Tk::Frame and delegates some options to the internal Tk::LabEntry subwidget. Unfortunately Tk::Frame itself uses some of the -label* options itself and auto-creates a Label. So under some circumstances (as in yours) you get an unwanted Label widget.

It seems that the correct solution would be patching Tk::BrowseEntry to pass all -label* options to the Tk::LabEntry subwidget:

--- Tixish/BrowseEntry.pm (revision 1396) +++ Tixish/BrowseEntry.pm (local) @@ -26,7 +26,17 @@ sub ListboxWidget { "Listbox" } sub Populate { my ($w, $args) = @_; + my %labelArgs; + while(my($k,$v) = each %$args) { + $labelArgs{$k} = $v; + delete $args->{$k}; + } + $w->Tk::Frame::Populate($args); + + while(my($k,$v) = each %labelArgs) { + $args->{$k} = $v; + } # entry widget and arrow button my $lpack = delete $args->{-labelPack};

Another solution would be to not use any of the -label* options when constructing the BrowseEntry, but configure the subwidget directly (the Subwidget name is "entry").

Or just use the optiondb? $mw->optionAdd("*BrowseEntry.Entry.background", $bgcolor, "startupFile"); ...


In reply to Re: Tk::BrowseEntry question by eserte
in thread Tk::BrowseEntry question by gri6507

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.