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

Three days ago I had some advice about getting a DynaTabFrame to be seen properly.
This was to add -sticky => 'nsew' to the ->grid settings for the DynaTab and not to use ->pack for the tabbed frames themselves.
Unfortunately this did not work fully for me.
In the attached I have found that I have to use ->pack to see what I want.
If I do not use->pack then I have to add a Label to the parent widget of the Dynatabbed frame (it is called $raised_label).
However when I do this only three of the five labels in the child tab are seen.
Sadly this is not all.
The main system is one where one Perl application calls another Perl application when a button is used.
The second application uses the DynTabFrame.
I have found that I have to remove the –label option for the child tab frame the first time the 2nd application is used to see what is required.
However, I can have a –label option the second time the 2nd application is used.
I use the grid geometry manager and I cannot easily stop doing this.
Can any Monk suggest what is going wrong or is there something amiss with the way the DynaTabFrame works with the grid geometry manager?

# dynatab setting query # use Tk; use Tk::DynaTabFrame; use strict "vars"; my (%frame, %label, %cp_wg, $raised_label, %insideframe, $mw_main, %ta +bbed_frame, $dynatab_name, $tab_Tabbed); my ($dynatab_caption, $dynatab_title, $dynatab_image, $dynatab_colour +, $dynatab_raised_colour); my ($tab_Tabbed, %insideframe, %label); #===============================sub raise ========================= sub dynatab_raise_cb() { my ($current_tab, $current_tab_name, $lbr_str); $current_tab = $tab_Tabbed->cget(-raised); $current_tab_name= $tab_Tabbed->cget(-raised_name); $lbr_str = "current <$current_tab> name <$current_tab_name>"; print "[dynatab_raise_cb] $lbr_str\n"; } #===================================================================== # # sub dynatab_frame_child # # this subroutine creates a child of the given dynatabbed frame # arguments # 0 exisiting tab frame parent # 1 referecne to new tabbed frame # 2 title of new tabbed frame # 3 colour of new tabbed frame # # ==================================================================== sub dynatab_frame_child($$$$$$$) { my ($tab_parent, $ref_child, $dynatab_caption, $dynatab_title, $dynata +b_image, $dynatab_colour ,$dynatab_raised_colour) = @_; print "[dynatab_frame_child] caption <$dynatab_caption> title <$dynata +b_title> image <$dynatab_image> colour <$dynatab_colour> raised <$dyn +atab_raised_colour>\n"; $$ref_child = $tab_parent->add( -caption => $dynatab_caption, -label => $dynatab_title, -tabtip => "Tip for tabno", ) ->pack() ; } #===========main========================= my $mw_Main = MainWindow->new; my $middle_Frame = $mw_Main->Frame(-borderwidth => 4, -relief => 'raised', )->grid(-row => 0, -column => 0); my $color = 'GREY'; my $raisecolor = 'WHITE'; my $side = 'nw'; $tab_Tabbed = $middle_Frame->DynaTabFrame( -font => 'Arial 8', -raisecmd => \&dynatab_raise_cb, -tabcolor => $color, -raisecolor => $raisecolor, -tabside => $side, -tabpadx => 3, -tabpady => 3, -tiptime => 600, -tipcolor => 'white' ) ->grid(-row => 0, -column => 0 , -sticky => 'nsew' ); # required to get something shown when ->pack is not used #$raised_label = $middle_Frame->Label( -width => 100)->grid(-row => 1, + -column => 0); $dynatab_name = 'SNG'; $dynatab_caption = "C1"; $dynatab_title = "Tab 1"; dynatab_frame_child($tab_Tabbed, \$tabbed_frame{$dynatab_name}, $dynat +ab_caption, $dynatab_title, $dynatab_image, $dynatab_colour , $dynata +b_raised_colour); $insideframe{a} = $tabbed_frame{$dynatab_name}->Frame(-borderwidth => +4, -relief => 'raised')->grid(-row => 0, -column => 0); $label{a} = $insideframe{a}->Label(-text => "Text 1 in $dynatab_title +Tabbed Frame")->grid(-row => 1, -column => 0); $label{aa} = $insideframe{a}->Label(-text => "Text 2 in $dynatab_title + Tabbed Frame")->grid(-row => 2, -column => 0); $label{ab} = $insideframe{a}->Label(-text => "Text 3 in $dynatab_title + Tabbed Frame")->grid(-row => 3, -column => 0); $label{ac} = $insideframe{a}->Label(-text => "Text 4 in $dynatab_title + Tabbed Frame")->grid(-row => 4, -column => 0); $label{ad} = $insideframe{a}->Label(-text => "Text 5 in $dynatab_title + Tabbed Frame")->grid(-row => 5, -column => 0); $dynatab_name = 'DOU'; $dynatab_caption = "C2"; $dynatab_title = "Tab 2"; dynatab_frame_child($tab_Tabbed, \$tabbed_frame{$dynatab_name}, $dynat +ab_caption, $dynatab_title, $dynatab_image, $dynatab_colour , $dynata +b_raised_colour); $insideframe{b} = $tabbed_frame{$dynatab_name}->Frame(-borderwidth => +4, -relief => 'raised')->grid(-row => 0, -column => 0); $label{b} = $insideframe{b}->Label(-text => "Text 1 in $dynatab_title +Tabbed Frame")->grid(-row => 1, -column => 0); $label{ba} = $insideframe{b}->Label(-text => "Text 2 in $dynatab_title + Tabbed Frame")->grid(-row => 2, -column => 0); $label{bc} = $insideframe{b}->Label(-text => "Text 3 in $dynatab_title + Tabbed Frame")->grid(-row => 3, -column => 0); $label{bd} = $insideframe{b}->Label(-text => "Text 4 in $dynatab_title + Tabbed Frame")->grid(-row => 4, -column => 0); $label{be} = $insideframe{b}->Label(-text => "Text 5 in $dynatab_title + Tabbed Frame")->grid(-row => 5, -column => 0); MainLoop;