use Tk; use Tk::DynaTabFrame; use strict; use warnings; my ($tabno, %frames, %label, %cp_wg, $raised_label); my $color = 'GREY'; my $raisecolor = 'WHITE'; my $side = 'nw'; my $mw = MainWindow->new(); my $frame_for_dynatab = $mw->Frame(-borderwidth => 4, -relief => 'raised')->grid(-row => 0, -column => 0); my $dtf = $frame_for_dynatab->DynaTabFrame( -font => 'Arial 8', -raisecmd => \&raise_cb, -tabcolor => $color, -raisecolor => $raisecolor, -tabside => $side, -tabpadx => 3, -tabpady => 3, -tiptime => 600, -tipcolor => 'white' ) ->grid(-row => 0, -column => 0); $raised_label = $frame_for_dynatab->Label(-text => "")->grid(-row => 1, -column => 0); for($tabno = 1; $tabno <= 20; $tabno ++) { my $caption = "Caption $tabno"; # print "$caption\n"; $frames{$tabno} = $dtf->add( -caption => $caption, -tabtip => "Tip for $tabno", )->pack(); # ); $label{$tabno} = $frames{$tabno}->Label(-text => "Text in $tabno Tabbed Frame", -width => 100)->grid(-row => 1, -column => 0); $cp_wg{$caption} = $frames{$tabno}; } sub raise_cb() { my ($current_tab, $current_tab_name, $lbr_str); $current_tab = $dtf->cget(-raised); $current_tab_name= $dtf->cget(-raised_name); $lbr_str = "current <$current_tab> name <$current_tab_name>"; $raised_label->configure (-text => $lbr_str); } MainLoop;