Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^2: Using Tk 8 menubar in its own window

by chrstphrchvz (Scribe)
on May 23, 2018 at 13:21 UTC ( [id://1215102]=note: print w/replies, xml ) Need Help??


in reply to Re: Using Tk 8 menubar in its own window
in thread Using Tk 8 menubar in its own window

Thanks for the quick reply. If by spacer you mean Frame, then your suggestion is reassuring in that I can use it with a simple test program:

use warnings; use strict; use Tk 800.000; my $mw = MainWindow->new; my $menu = $mw->Menu(); my $file_menu = $menu->cascade(-label => 'File', -tearoff => 'false'); my $edit_menu = $menu->cascade(-label => 'Edit', -tearoff => 'false'); my $help_menu = $menu->cascade(-label => 'Help', -tearoff => 'false'); $mw->configure(-menu => $menu); my $spacer = $mw->Frame(-width => 200)->pack; # resize handle obscures Help menu $mw->resizable(0,0); MainLoop;

I'm now inclined to think I didn't get this to work earlier because there's something else in the program that prevents a packed spacer from working as expected. I know the menu's window is being resized programmatically (so that it is stretched horizontally across the screen); I will have to keep digging to figure this out. I am not the program's original author, and am still figuring out my way around both it and Perl and Tk.

Replies are listed 'Best First'.
Re^3: Using Tk 8 menubar in its own window
by chrstphrchvz (Scribe) on May 24, 2018 at 05:39 UTC

    It turns out the height of the menubar window was manually being set to 30 using $toplevel->geometry. Having it use height 0 instead eliminates the empty space. I then have to tell the program separately to pretend the menubar window has a height of 30 so that the positions calculated for the other windows do not overlap with the menubar window. Since I'm using geometry anyways, I can omit the spacer widget. Here's what that looks like for the test program:

    use warnings; use strict; use Tk 800.000; my $mw = MainWindow->new; my $menu = $mw->Menu(); my $file_menu = $menu->cascade(-label => 'File', -tearoff => 'false'); my $edit_menu = $menu->cascade(-label => 'Edit', -tearoff => 'false'); my $help_menu = $menu->cascade(-label => 'Help', -tearoff => 'false'); $mw->configure(-menu => $menu); # same effect as geometry('200x0+0+0') #my $spacer = $mw->Frame(-width => 200)->pack; $mw->geometry('200x0+0+0'); # resize handle obscures Help menu $mw->resizable(0,0); MainLoop;

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (2)
As of 2024-04-26 00:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found