Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^4: Placement of image with Tk::Compound and Tk::Menu

by ldln (Pilgrim)
on Jul 05, 2006 at 11:57 UTC ( [id://559314]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Placement of image with Tk::Compound and Tk::Menu
in thread Placement of image with Tk::Compound and Tk::Menu

Had look at the widget demo and found a solution but other problems appeared also.

The solution is to use "-hidemargin =>1" option on each menuitem.

I tried this option before posting my query, but apparently if we don't use "-hidemargin =>1" on all menuitems under a menubar entry, it just won't work. So it seems that indivdual menuitems can't be controlled - they all eiter have a margin or they don't. Well, I can live with that.

But now there are two other problems:

1) On the Checkbutton menuitem, the "hook" no longer appears.
2) The image from Tk::ToolBar doesn't appear properly before menuitem is highlighted. Same happens if I create own Tk::Image widget and use that instead.

How could we solve these issues?

#!/usr/bin/perl -s use Tk; use Tk::ToolBar; use Tk::Compound; use strict; 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? #Answer:use -hidemargin option. $compound->Image( -image => 'acthelp16', -anchor => 'w' ); $compound->Space( -width => 8 ); $compound->Text( -text => "Open", -underline => 0 ); $compound->Space( -width => 28 ); my $menubar = $mw->Menu( -type => 'menubar', ); my $c2 = $mw->Compound; $c2->Space(-width => 40); #my $menuitem = [ [ command => Open, -image => $compound ] ]; $menubar->cascade( -label => 'File', -tearoff => 0, -menuitems => [ #All menuitem must have hidemargin enabled for it to work. [ Button => 'Open', -image => $compound, -hidemargin => 1, ], [ Button => '~Quit', -command => [ destroy => $mw ], -hidemar +gin => 1 ], '-', #But now the checkbutton doesn't appear anymore.. [ Checkbutton => 'Checkthing', -hidemargin => 1, -image=>$c2, + -compound=>'left' ], ] ); $mw->configure( -menu => $menubar ); MainLoop;

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://559314]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2024-04-19 06:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found