Yes, the answer is GEOMETRY MANAGER.
#!/usr/bin/perl -w
use strict;
use Tk;
use Tk::Compound;
my $parent = MainWindow->new();
my $b = $parent->Button;
my $c = $b->Compound;
$b->configure(-image => $c);
$c->Line;
$c->Bitmap(-bitmap => 'warning');
$c->Space(-width => 8);
$c->Text(-text => "Warning", -underline => 0);
$b->pack(-side => 'left');
MainLoop();
This is the example code from Tk::Compound's documentation with a couple of things added to make it runnable. Note the addition of -side => 'left' as an option to the pack command. Tk::pack is not my genoetry manager of choice, but it is simple for this demonstration. I would suggest developing amore than nodding acquaintance with "Mastering Perl/Tk" by Lidie and Walsh, published by O'Reilly.
jdtoronto | [reply] [d/l] [select] |
| [reply] |
Yes, but after I had responded. I see your issue, looking carefully at my menues I note the constant space to the left of the option text, or in your case the graphic. This space is used for the check mark when you use a checkbutton in the menu. There is also some small space to the right which does not seem controllable either. I did somemore experimenting with some of my own code, but in the end I did not find a way to do what you need. Here is your code but with a Checkbutton added so when you check it you can see some justification for the space.
#!/usr/bin/perl
use Tk;
use Tk::ToolBar;
use Tk::Compound;
#my $mw = tkinit;
my $mw = MainWindow->new();
#Load images from Tk::ToolBar.
my $tb = $mw->ToolBar();
$tb->destroy();
my $compound = $mw->Compound;
#How do we place this image to far left in menu?
$compound->Image( -image => 'acthelp16', -anchor => 'w' );
$compound->Space( -width => 8 );
$compound->Text( -text => "Open", -underline => 0 );
my $menubar = $mw->Menu( -type => 'menubar', );
#my $menuitem = [ [ command => Open, -image => $compound ] ];
$menubar->cascade(
-label => 'File',
-tearoff => 0,
-menuitems => [ [ Button => 'Open', -image => $compound ],
[ Button => '~Quit', -command => [ destroy => $mw ]
+],
[ Checkbutton => 'Checkthing' ],
]
);
$mw->configure( -menu => $menubar );
MainLoop;
jdtoronto | [reply] [d/l] |