[panedwindow ] creates and manipulates paned window widgets
Also called tk::panedwindow in Tk 8.5.
Ro: I always find that I need some examples to get started with a widget. So here is a simple example that should get you started with the panedwindow from Tk 8.4 (be sure to check out the man page [L1 ] for details)
package require Tk 8.4 panedwindow .pw -orient vertical label .pw.x1 -text Bapy -fg orange -bg black label .pw.x2 -text Mojo -fg white -bg red .pw add .pw.x1 -minsize 200 .pw add .pw.x2 -minsize 100 pack .pw -fill both -expand yes
Maximize the window to see how you can alter the sizes of the panes, while respecting the minsize that was chosen by the config option -minsize .
The widgets that you add to the panedwindow MUST be children of the panedwindow, in this case they must be .pw.something .
On windows, mouse-button-1 resizes the panes once you let go of the sash, whereas mouse-button-2 resizes the panes as you move the sash.
TR - No, the widgets to add to panedwindow must NOT be children of the pane itself (at least it does not say so in the man page). This version work perectly fine:
panedwindow .pw -orient vertical label .x1 -text Bapy -fg orange -bg black label .x2 -text Mojo -fg white -bg red .pw add .x1 -minsize 200 .pw add .x2 -minsize 100 pack .pw -fill both -expand yes
BUT, the order of window generation is apparently important. This version, where the pane is created after the labels, does NOT work:
label .x1 -text Bapy -fg orange -bg black label .x2 -text Mojo -fg white -bg red panedwindow .pw -orient vertical .pw add .x1 -minsize 200 .pw add .x2 -minsize 100 pack .pw -fill both -expand yes
The pane will be visible but the labels won't.
LV: Could this be due to stacking order?
RS 2006-01-29: Hacking a Tk panedwindow with eTcl on my phone, I wasn't sure whether to arrange panes horizontally or vertically. Well, thought I, let the user decide - took me 4 lines of code, plus the demo below. Right-click on the sash to toggle:
proc toggle'orientation w { $w config -ori [expr {[$w cget -ori] eq "horizontal"? "vert": "hori"}] } #-- Demo and usage example: pack [panedwindow .p] .p add [label .p.1 -text Hello] .p add [label .p.2 -text world] bind .p <3> {toggle'orientation %W}