monksp has asked for the wisdom of the Perl Monks concerning the following question:
package ChecklistFrame; use strict; use Tk::widgets qw/Button Label/; use base qw/Tk::Frame/; Construct Tk::Widget 'ChecklistFrame'; sub ClassInit { my($class, $mw) = @_; $class->SUPER::ClassInit($mw); } sub Populate { my($self, $args) = @_; $self->SUPER::Populate($args); my($type) = $args->{'-type'}; delete $args->{'-type'}; if (($type eq 'item') || ($type eq 'header')) { $self->Component( 'Button' => 'runbutton', -pady => 0, -text => 'Run' )->pack(-side => 'left'); $self->Component( 'Button' => 'nabutton', -pady => 0, -text => 'N/A' )->pack(-side => 'left'); $self->Component( 'Label' => 'label', -justify => 'left' )->pack(-side => 'left', -anchor => 'w'); } elsif ($type eq 'label') { $self->Component( 'Label' => 'label', -relief => 'raised' )->pack(-side => 'left', -fill => 'both', -expand => 1); } my($l) = $self->Subwidget('label'); $self->ConfigSpecs( -text => [$l], -class => [$self], 'DEFAULT' => [$self] ); $self->Delegates( 'DEFAULT' => $self ); } 1;
Everything looks as it should, but the text is centered in its section of the widget, rather than up against the edge of the nabutton.my($mw) = MainWindow->new(); $currentframe = $mw->ChecklistFrame( -class => 'Checklist', -type => 'item', -text => 'Foo' ); $elementtext = 'Foo!'; $currentframe->pack(); MainLoop;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Justifying a label inside a Tk megawidget
by hangon (Deacon) on Jul 15, 2009 at 04:29 UTC | |
by monksp (Acolyte) on Jul 15, 2009 at 16:17 UTC |