http://www.perlmonks.org?node_id=498833


in reply to Name spaces and Perl::Tk coding style

One can also (is supposed to (?)) create a Tk::composite object.

package myApp::MyWidget; use strict; use warnings; use base qw/Tk::Frame/; our $VERSION = 0.1; Construct Tk::Widget 'MyWidget'; =pod =head1 NAME myApp::MyWidget - Widget for use in myApp =head1 SYNOPSIS use strict; use Tk; use myApp::MyWidgeet; my $mw = new MainWindow; my $widget = $mw->MyWidget( %options ); $widget->pack; =cut sub Populate { my($self, $args) = @_; $self->SUPER::Populate($args); my $top = $self->Frame()->pack( -fill => 'both', -expand => 'x', -ipadx => 5, -ipady => 5, ); # ... Other stuff ... # $self->ConfigSpecs( # ... # ); # $self->Delegates('DEFAULT' => $scale); } 1;

The ConfigSpecs and Delegates control which options/methods go to which subwidgets. There is also a Component method that can be called that can give you access to the subcomponents (such as your checkboxes), or you can create custom methods that process the information from the form before returning it (which is probably the better route anyway).

Good Day,
    Dean