I have used the suggestions and corrections and all now works as I wanted it to.
Therefore many thanks for pointing me in the right direction.
Below is the Perl for this which now includes a button which brings up the secondary window so that the ‘balloon’ can be tested.
use strict "vars"; use Tk; use Tk; use Tk::TabFrame; use Tk::Balloon; my ($a_tbfr, $tab_mw, $b_tbfr, $frame_wg); my ($lb_str, $en_str, %tabwg, $tabwg_item, $current_product, $gen_str, + $j, $j_str, %wg, $wg_item, $att_res); my ($msgarea, $balloon_msg, $status_msg, $bl_str); my ($button_sc, $toplevel_entry_wg, $toplevel_wg, $balloon); $current_product = 'unset'; $tab_mw = MainWindow->new; $tab_mw->Label(-text => 'Tabbed Frame to Check Tooltips')->grid(-row = +> 0); # create the tabbed frame $a_tbfr = $tab_mw->TabFrame ( -font =>'-adobe-times-medium-r-bold--14', -tabcurve =>4, -padx => 10, -pady => 10, -width => 400 ); # add button that gives additional screen with button $button_sc = $tab_mw->Button( -text => 'See top level widget', -command => sub { $toplevel_wg->deiconify(); $toplevel_wg->raise(); }) ->grid(-row => 2); # create the message area for tooltips $msgarea = $tab_mw->Label(-borderwidth => 2, -relief => 'groove') ->grid(-row => 3); # create a ballon for this message area etc $balloon = $tab_mw->Balloon(-statusbar => $msgarea); # create the tabbed frames each with a label and entry box $a_tbfr->grid ('-row' => 1); for($j = 1; $j <= 3; $j ++) { $j_str = "Tab " . $j; $tabwg{$j_str} = $a_tbfr->Frame ( -caption => $j_str, ); $lb_str = "Tab " . $j . '_Label'; $wg{$lb_str} = $tabwg{$j_str}->Label(-text => "Text in Label in $j +_str", -width => 50)->grid(-row => 2, -column=>0); $en_str = "Tab " . $j . '_Entry'; $wg{$en_str} = $tabwg{$j_str}->Entry (-text => $en_str, -width => 20)->grid(-row => 3, -column=>0); $balloon_msg = "Tab " . $j . " balloon / tooltips message"; $status_msg = "Tab " . $j . " status message"; $att_res = $balloon->attach($wg{$en_str}, -balloonmsg => $balloon_ +msg, -statusmsg => $status_msg); print "attach result <$att_res> for widget <$en_str>\n"; } # create a TopLevel widget $toplevel_wg = $tab_mw->Toplevel(); # create an entry box for this toplevel widget $toplevel_wg->Label(-text => "Text above entry box")->grid(-row => 0); $toplevel_entry_wg = $toplevel_wg->Entry(-width => 20)->grid(-row => 1 +, -column=>0); $toplevel_wg->Label(-text => "Text below entry box")->grid(-row => 2); # withdraw the second toplevel widget $toplevel_wg->withdraw(); $att_res = $balloon->attach($toplevel_entry_wg, -balloonmsg => "toplev +el entry box balloon/tooltip", -statusmsg => "toplevel entry box sta +tus"); print "attach result <$att_res> forwidget <top_level_entry>\n"; MainLoop;

In reply to Re^2: How to get balloons (tooltips) on toplevel widget by merrymonk
in thread How to get balloons (tooltips) on toplevel widget by merrymonk

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.